Amsterdam Compiler Kit

Retargetable charger suite From Wikipedia, the free encyclopedia

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.[1] It has frontends for the following programming languages: C, Pascal, Modula-2, BASIC, and Occam.

DeveloperDavid Given
Initial releaseearly 1980s
Stable release
6.2+ / April 17, 2025; 10 months ago (2025-04-17)
Quick facts Original authors, Developer ...
Amsterdam Compiler Kit
Original authorsAndrew Tanenbaum, Ceriel Jacobs
DeveloperDavid Given
Initial releaseearly 1980s
Stable release
6.2+ / April 17, 2025; 10 months ago (2025-04-17)
Written inC
Operating systemMinix, Unix-like
TypeRetargetable compiler
LicenseBSD licenses
Websitetack.sf.net Edit this on Wikidata
Repository
Close

History

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 as MINIX's native compiler toolchain until the MINIX userland was largely replaced by that of NetBSD (MINIX 3.2.0) and Clang was adopted as the system compiler.

It was originally closed-source software, initially distributed by Tanenbaum himself,[4] later through UniPress Software and Transmediair Utrecht as distributors in the Americas and Europe respectively. The distribution of compiler binaries for MINIX was a special case in this arrangement.[5] In April 2003, it was released under the BSD licenses.

Working principle

Maximum portability is achieved by using an intermediate language using bytecode, called EM-1[6] or EM[citation needed]. 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

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

References

Related Articles

Wikiwand AI