Intermediate language

Intermediate language

In computer science, an intermediate language is the language of an abstract machine designed to aid in the analysis of computer programs. The term comes from their use in compilers, where a compiler first translates the source code of a program into a form more suitable for code-improving transformations, as an intermediate step before generating object or machine code for a target machine. The design of an intermediate language typically differs from that of a practical machine language in three fundamental ways:

* Each instruction represents exactly one fundamental operation; "e.g." "shift-add" addressing modes common in microprocessors are not present.
* Control flow information may not be included in the instruction set.
* The number of registers available may be large, even limitless.

A popular format for intermediate languages is three address code.

A variation in the meaning of this term, is those languages used as an intermediate language by some high-level programming languages which do not output object or machine code, but output the intermediate language only, to submit to a compiler for such language, which then outputs finished object or machine code. This is usually done to gain optimization much as treated above, or portability by using an intermediate language that has compilers for many processors and operating systems, such as C. Languages used for this fall in complexity between high-level languages and low-level languages, such as assembly languages.

Languages

Some intermediate programming languages:

C is used as an intermediate language by many programming languages including Eiffel, Sather, Esterel; some dialects of Lisp (Lush, Gambit), Haskell (Glasgow Haskell Compiler); Squeak's C-subset Slang, and others. Variants of C have been designed to provide C's features as a portable assembly language, including one of the two languages called C--, the [http://manju.cs.berkeley.edu/cil/ C Intermediate Language] and the Low Level Virtual Machine.

In effect, Sun Microsystem's Java bytecode is the intermediate language used by all compilers targeting the Java Virtual Machine. The JVM can then do just-in-time compilation to get executable machine code to improve performances. Similarly, Microsoft's Common Intermediate Language is an intermediate language designed to be shared by all compilers for the .NET Framework, before static or dynamic compilation to machine code.

The GNU Compiler Collection (GCC) uses internally several intermediate languages to simplify portability and cross-compilation. Among these languages are

* the historical Register Transfer Language (RTL)
* the tree language GENERIC
* the SSA-based GIMPLE.

See also

* Intermediate representation
* [http://suif.stanford.edu/ The Stanford SUIF Group]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Intermediate language — Common Intermediate Language (CIL) (teilweise auch nur Intermediate Language (IL)) ist eine Zwischensprache, in die alle Programme der Common Language Infrastructure übersetzt werden. CIL ist eine objektorientierte Assemblersprache und ist… …   Deutsch Wikipedia

  • intermediate language — tarpinė kalba statusas T sritis informatika apibrėžtis Kalba, atliekanti tarpininkės vaidmenį verčiant iš vienos kalbos į kitą: tekstas pirma išverčiamas į tarpinę kalbą, po to – į kitą kalbą. Programavime vartojama verčiant programą iš ↑aukšto… …   Enciklopedinis kompiuterijos žodynas

  • Common Intermediate Language — For the counterpart to compiled assembly in the Microsoft .NET framework, see .NET assembly. Common Intermediate Language (CIL, pronounced either sil or kil ) (formerly called Microsoft Intermediate Language or MSIL) is the lowest level human… …   Wikipedia

  • Microsoft Intermediate Language — Microsoft Intermediate Language, сокращенно MSIL промежуточный язык, разработанный фирмой Microsoft для платформы .NET Framework. JIT компилятор MSIL является частью так называемой CLR (англ. Common Language Runtime) общей среды выполнения языков …   Википедия

  • Common Intermediate Language — (сокращённо CIL)  промежуточный язык, разработанный фирмой Microsoft для платформы .NET Framework. JIT компилятор CIL является частью так называемой CLR (англ. Common Language Runtime)  общей среды выполнения языков .NET. Ранее… …   Википедия

  • Common Intermediate Language — (CIL, pronunciado sil o kil ) (anteriormente llamado Microsoft Intermediate Language o MSIL) es el lenguaje de programación legible por humanos de más bajo nivel en el Common Language Infrastructure y en el .NET Framework. Los lenguajes del .NET… …   Wikipedia Español

  • DIANA (intermediate language) — DIANA, the Descriptive Intermediate Attributed Notation for Ada, is an intermediate language used to represent the semantics of an Ada program. It was originally designed as an interface between the front end (syntactic analysis) and middle… …   Wikipedia

  • Microsoft Intermediate Language — Common Intermediate Language (CIL) (teilweise auch nur Intermediate Language (IL)) ist eine Zwischensprache, in die alle Programme der Common Language Infrastructure übersetzt werden. CIL ist eine objektorientierte Assemblersprache und ist… …   Deutsch Wikipedia

  • Common Intermediate Language — (CIL) (teilweise auch nur Intermediate Language (IL)) ist eine Zwischensprache, in die alle Programme der Common Language Infrastructure übersetzt werden. CIL ist eine objektorientierte Assemblersprache und ist vollständig stackbasiert. Auf dem… …   Deutsch Wikipedia

  • Java Intermediate Language — In computer science, Java Intermediate Language is an intermediate language (which is a subset of XML and SGML) representing the type structure of a Java program. The language was proposed by the team of SableVM in McGill University in January… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”