|Developer(s)||Andrew Tanenbaum, Ceriel Jacobs;|
Currently: David Given
|Initial release||early 1980s|
6.0pre5 / June 2, 2016
|Operating system||Minix, Unix-like|
The Amsterdam Compiler Kit (ACK) is a retargetable compiler suite and toolchain written by Andrew Tanenbaum and Ceriel Jacobs, since 2005 maintained by David Given. It has frontends for the following programming languages: C, Pascal, Modula-2, Occam, and BASIC.
Maximum portability is achieved 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.
ACK backends can produce native machine code for a wide range of CPUs, even starting with small 8 bit CPUs.
- 6800 (assembler only)
- 6805 (assembler only)
- 6809 (assembler only)
- Intel 8086*
- S2650 (assembler only)
- Broadcom VideoCore IV (BCM2708)*
* Version 6.0
- "The Amsterdam Compiler Kit". 2005. Time line on official website.
- 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. hdl:1871/2605. S2CID 1217657.
- 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.