EM intermediate language
Encyclopedia
The EM intermediate language is a family of intermediate language
s created to facilitate the production of portable compiler
s. The language's specifications were created by Andrew Tanenbaum, Hans van Staveren, Ed G. Keizer, Johan W. Stevenson and they were implemented in the Amsterdam Compiler Kit
(ACK).
Unlike the GNU Compiler Collection
's (GCC) intermediate language, EM is a real programming language
and could be implemented in hardware
; a number of the language front-ends have libraries implemented in EM assembly language
. EM is a relatively high-level stack-based machine, and one of the tools supplied with ACK is an interpreter able to execute EM binaries directly, with a high degree of safety checking.
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...
s created to facilitate the production of portable compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...
s. The language's specifications were created by Andrew Tanenbaum, Hans van Staveren, Ed G. Keizer, Johan W. Stevenson and they were implemented in the Amsterdam Compiler Kit
Amsterdam Compiler Kit
The Amsterdam Compiler Kit is a fast, lightweight and retargetable compiler suite and toolchain written by Andrew Tanenbaum and Ceriel Jacobs, and is MINIX's native toolchain. The ACK was originally closed-source software , but in April 2003 it was released under an open source BSD license...
(ACK).
Unlike the GNU Compiler Collection
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
's (GCC) intermediate language, EM is a real programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
and could be implemented in hardware
Hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....
; a number of the language front-ends have libraries implemented in EM assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
. EM is a relatively high-level stack-based machine, and one of the tools supplied with ACK is an interpreter able to execute EM binaries directly, with a high degree of safety checking.