Amsterdam Compiler Kit

Amsterdam Compiler Kit
Developer(s) Andrew Tanenbaum, Ceriel Jacobs
Initial release early 1980s
Stable release
6.0pre5 / June 2, 2016 (2016-06-02)
Written in C
Operating system Minix, Unix-like
Type Retargetable compiler
License BSD licenses

The Amsterdam Compiler Kit (ACK) is a 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 an open source BSD license. It has frontends for programming languages C, Pascal, Modula-2, Occam, and BASIC.

The ACK's notability stems from the fact that in the early 1980s it was one of the first portable compilation systems designed to support multiple source languages and target platforms.[1][2]

The ACK achieves maximum portability by using an intermediate language using bytecode, called EM. Each language front-end produces EM object files, which are then processed through several generic optimisers before being translated by a back-end into native machine code.

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. However, EM code cannot be linked to native machine code without translating the EM binary first.

Target processors

* Version 6.0

See also


  1. Tanenbaum, Andrew S; van Staveren, H.; Keizer, E.G.; Stevenson, J.W. (1983). "A Practical Tool Kit For Making Portable Compilers". Communications of the ACM. 26 (9): 654–660. doi:10.1145/358172.358182.
  2. A.V Aho, R. Sethi & J.D. Ullman (1986). Compilers - Principles, Techniques and Tools ("The Dragon Book"). Addison-Wesley. p. 511. ISBN 0-201-10088-6.

External links

This article is issued from Wikipedia - version of the 11/28/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.