Amsterdam Compiler Kit
From Wikipedia, the free encyclopedia
Amsterdam Compiler Kit | |
---|---|
Developed by | Andrew Tanenbaum and Ceriel Jacobs |
Latest release | 6.0pre3 / April 29, 2007 |
OS | Minix and Unix-like |
Genre | Retargetable compiler |
License | BSD licenses |
Website | http://tack.sourceforge.net/ |
The Amsterdam Compiler Kit (ACK) 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 (that allowed binaries to be distributed for Minix as a special case), but in April 2003 it was released under a BSD open source license. It has frontends for C, Pascal, Modula-2, Occam, and BASIC.
The ACK achieves maximum portability by using an intermediate byte-code language called EM. Each language front-end produces EM object files, which are then processed through a number of generic optimisers before being translated by a back-end into native machine code.
Unlike GCC's 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. EM is a relatively high-level stack-based machine, and one of the tools supplied with ACK is an interpreter capable of executing EM binaries directly, with a high degree of safety checking.
ACK comes with a generic linker and librarian capable of manipulating files in the ACK's own a.out-based format; it will work on files containing EM code as well as native machine code. (You cannot, however, link EM code to native machine code without translating the EM binary first.)
Contents |