|
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 the source code of a program is translated into a form more suitable for code-improving transformations before being used to generate 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 processor registers available may be large, even limitless. A popular format for intermediate languages is three-address code. The term is also used to refer to languages used as intermediates by some high-level programming languages which do not output object or machine code themselves, but output the intermediate language only. This intermediate language is submitted to a compiler for such language, which then outputs finished object or machine code. This is usually done to ease the process of optimization or to increase 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. ==Intermediate representation== An Intermediate representation (IR) is a data structure that is constructed from input data to a program, and from which part or all of the output data of the program is constructed in turn. Use of the term usually implies that most of the information present in the input is retained by the Intermediate representation, with further annotations or rapid lookup features. A canonical example is found in most modern compilers, where the linear human-readable text representing a program is transformed into an intermediate graph data structure that allows flow analysis and re-arrangements before starting to create the list of actual CPU instructions that will do the work. Use of an Intermediate representation allows compiler systems like GNU GCC and LLVM to be targeted by many different source languages, and support generation for many different target architectures. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Intermediate language」の詳細全文を読む スポンサード リンク
|