Welcome to the home page for CM0185 — Compilers. Course announcements for CM0185 will be posted on this web page and announced in class. Be sure to check this page for updates!

Course Description

An introduction to the specification and implementation of modern compilers. Topics covered include: lexical analysis, parsing, type-checking, operational semantics, code generation and run-time support for modern programming languages.


Stefano Calzavara

Class Schedule

  • Monday 8.45 – 10.15 (Delta building, Room 2B)
  • Wednesday 10.30 – 12.00 (Delta building, Room 2B)


Compilers: Principles, Techniques and Tools. (Dragon Book).
Addison-Wesley, 1988 / 2007

Assignments and Grading

There will be 3 programming assignments throughout the course (plus a “warm-up” assignment). At the end of the course, there will be an oral exam of approximately 40 minutes on the main topics discussed in the lectures.

The final mark will be computed as a weighted arithmetic mean as follows:

  • 50% from the 3 programming assignments
  • 50% from the oral exam

Notice that both the programming assignments and the oral exam must be granted a positive mark (>=18) to pass the exam!

Office time

For any problem or feedback about the course, you can meet me at my office on Friday from 4PM to 6PM. My office is located in room 3, at the top of the red stairs on the first floor of the Zeta building.