Course literature and other resources

The links to the resources on this page were verified on March 18, 2015. Let Magnus know if you find any of them broken!

Text book

The text book for the course is Aho, Lam, Sethi and Ullman: Compilers: Principles, Techniques, and Tools, 2nd. ed (Pearson International Edition 2007). Available at Cremona and several web stores.

Additional useful texts

An excellent text book on modern compiling techniques is Cooper and Torczon: Engineering a Compiler. Focuses on backend issues; careful choice of material and very well written.

A somewhat dated but nice book on implementing lazy functional languages is Peyton-Jones and Lester: Implementing functional languages (free download as PDF file).

Course discussion group

We have a Google group dedicated to questions and discussions pertaining to the course. You may look for a project partner, ask questions of general interest, answer questions from other students, etc. Detailed questions related to your own code are better asked by email to your supervisor or in person during office hours.

Anyone can read the discussions; to post you must become a member. The group page is here.

Software tools

Many software tools are available, in particular for front ends. We give just a few links.

Flex/Bison and Alex/Happy are installed on the Linux computers in lab rooms. If you prefer to work in Java, download JLex/CUP.

Documentation for project languages

Test program

For your and our convenience, we provide a test suite to help verify the correctness of your compiler, in the form of a collection of Javalette test programs and a driver program that runs your compiler on these test programs.

Unpack the archive in some suitable directory and follow instructions described in the project description.

Menu