Amsterdam Compiler Kit

TheAmsterdam Compiler Kit(ACK) is aretargetable compilersuite andtoolchainwritten byAndrew TanenbaumandCeriel Jacobs,since 2005 maintained byDavid Given.[1]It has frontends for the followingprogramming languages:C,Pascal,Modula-2,Occam,andBASIC.

Amsterdam Compiler Kit
Developer(s)Andrew Tanenbaum,Ceriel Jacobs;
Currently: David Given
Initial releaseearly 1980s
Stable release
6.0pre5 / June 2, 2016;8 years ago(2016-06-02)
Repository
Written inC
Operating systemMinix,Unix-like
TypeRetargetable compiler
LicenseBSD licenses
Websitetack.sourceforge.net

History

edit

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.[2][3]

The ACK was known asMINIX's native compiler toolchain until the MINIXuserlandwas largely replaced by that ofNetBSD(MINIX 3.2.0) andClangwas adopted as the system compiler.

It was originally closed-source software (that allowedbinariesto be distributed for MINIX as a special case), but in April 2003 it was released under theBSD licenses.

Working principle

edit

Maximum portability is achieved by using anintermediate languageusingbytecode,called EM. Each language front-end produces EMobject files,which are then processed through several generic optimisers before being translated by a back-end into nativemachine code.

ACK comes with a generic linker and librarian capable of manipulating files in the ACK's owna.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

edit

ACK backends can produce native machine code for a wide range of CPUs, even starting with small 8 bit CPUs.

*Version 6.0

See also

edit

References

edit
  1. ^"The Amsterdam Compiler Kit".2005.Time line on official website.
  2. ^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.S2CID1217657.
  3. ^A.V. Aho, R. Sethi & J.D. Ullman (1986).Compilers: Principles, Techniques, and Tools( "The Dragon Book" ).Addison-Wesley. p.511.ISBN0-201-10088-6.
edit