Amsterdam Compiler Kit

The last Pascal compiler developed at the Vrije Universiteit is the Pascal compiler in the Amsterdam Compiler Kit.

The Amsterdam Compiler Kit, ACK, is a venerable piece of software that dates back to the early 1980s. It was originally written by Andrew Tanenbaum and Ceriel Jacobs as a commercial product; for many years it was also used as Minix’ native toolchain. After eventually failing as a commercial project, it was made open source under a BSD license in 2003 when it looked like it was going to be abandoned and the code lost.

The ACK contains compilers for ANSI C, K&R C, Pascal, Modula-2, Occam 1, and a primitive Basic. It contains code generators for a large number of architectures, mostly 8 and 16 bit machines; there are also a set of generic optimisation, linker and librarian tools. Each language comes with its own runtime, so if you’re a C programmer you also get a libc. Compared to gcc, it is far smaller, faster and easier to port.

The ACK is still maintained by David Given at https://github.com/davidgiven/ack

It clearly shows that the base of the ACK was laid by the implementation of the Pascal-VU compiler as compiler to code for the virtual EM machine, evolved over time to suit the ACK.

Description of an Experimental machine
Architecture for Block Structured Languages

Wiskundig Seminarium Rapport IR-54 April 1980
The virtual machine for the Pascal-VU compiler
Using Peephole Optimization on Intermediate Code
Januari 1982
A Practical Toolkit for making Portable Compilers
September 1983
Efficient Encoding of Machine Instructions
Does anybody out there want to write HALF of a compiler?
The EM interpreter, 1983
Description of a Machine Architecture for Use with Block Structured Languages
Informatica Rapport IR81, 1983
The ACK Pascal Compiler
ACK EM Pascal source
ACK: A backend table for the 6500