Amsterdam Compiler Kit

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.

It 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 the BSD licenses.

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.