Software Compilers @ ALaRI


This is the home page for the laboratory activity in the Software Compilers course held at ALaRI by Prof. Stefano Crespi Reghizzi.

Teaching Materials

A full package with all the necessary materials.

Older Materials

Lexical Analysis: slides and examples.

Syntax Analysis: slides and examples.

ACSE (latest version): several bug fixes, including major ones in the register allocation phase.

Advanced Compiler System for Education: a realistic (but still not as complex as real world) compiler system used in the course. Includes source code, documentation and slides.

Exercises with ACSE

  • Complete implementation of the Shift operations, with a minimal test file.
  • Simple implementation of a C-like For statement, with a minimal test file.
  • Array initialization, with the usual test file. In this patch you can also find some additional comments to the register allocation.

The files provided above are patches (obtained with diff -Naur ACSE ACSE-new); apply them to the distribution using the Unix patch command. The patch are pure ASCII, so you can also read them to understand the changes. They are incremental, so you only need to apply the last one.

Here you can find the ACSE package with the latest patch applied.

Recommended Readings

The papers listed here, while not necessary for the course, are still recommended to get a more complete view of the main topics in compiler techniques.

Compiler Transformations for High-Performance Computing: a good, if old, survey of compiler optimizations for high performance by D. Bacon et al.

Linear Scan Register Allocation: a relatively simple register allocation algorithm by Poletto and Sarkar. ACSE implements this algorithm.

Uniprocessor Garbage Collection Techniques: a complete survey of Garbage Collection by P. Wilson.


ILDJIT, our dynamic compiler for CIL bytecode. The special projects are based on ILDJIT rather than on ACSE.



Topic Type Day Time
Introduction to Compiler Systems Intro 29/11 8:45-12:00
Front-end design laboratory Lab 13/12 8:45-13:00
Back-end design laboratory Lab 21/12 8:45-13:00
Project tutoring Tut 29/01 8:45-12:00

Project Assignments

Projects assignments have been presented on 13/12. You were supposed to choose your own project by the end of the following week.

Old projects page

The projects for years 2009 and 2010.

Old Exam Texts

teaching/alari.txt · Last modified: 2011/12/14 16:09 by agosta
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki