View the Project on GitHub TiarkRompf/cs352

Compilers: Principles And Practice

Spring 2024, 3 credits. Instructor: Dr. Guannan Wei, Prof. Tiark Rompf

Announcements will be posted on Piazza. Homework submission and grading will be done through Brightspace.

Lectures are Tuesday and Thursday, 12:00-1:15pm in LWSN B155. As the Pandemic situation evolves the mode of lecture delivery might need to change. Please keep an eye on the announcements on Piazza.

Teaching assistants are:

PSO sessions are:

  • Tuesday 4:30pm to 5:20pm, HAAS 257
  • Wednesday 2:30pm to 3:20pm, HAAS 257
  • Thursday 3:30pm to 4:20pm, HAAS 257

Midterm will be held on Thursday Mar 7th during the normal class hours. Final will be held on Wednesday May 1st, 1:00pm to 3:00pm, HORT 117.

About the Course

In a nutshell: The theory and practice of programming language translation, compilation, and run-time systems, organized around a significant programming project to build a compiler for a simple but non-trivial programming language.

Parts of the class are based on the Advanced Compiler Construction class taught by Michel Schinz at EPFL. The corresponding class materials (lecture slides, programming assignments, etc) are used with permission.

Grades: Final grades will be based on results for the programming assignments (50%), midterm (20%), and final exam (30%). Achieving a minimum of 20% in each of the three components is mandatory for a passing grade.

Late Work Policy: No late submission will be accepted. Exceptions will be given only in the most extreme circumstances. Any travel, including interview trips, load from work or other classes, or simply not being able to get your program to run will not be grounds for extensions or exceptions.

Academic integrity: For general policies about academic integrity etc. Please see here. You are expected to read that page and will be held accountable according to its contents.

Attendance: This is an in-person class. Attendance is encouraged but not required. Most students profit from in-class discussions. But if you prefer to learn on your own that’s fine, too. Lectures won’t be recorded but slides will be made available online. You’re welcome to take notes in class, but strictly no audio or video recordings.

Recommended Books

Supplementary Resources

Lecture Notes

A set of lecture notes is available here:


Week 1

Week 2

Week 3

Week 4-5

Week 6-7

Week 8

Week 9

Week 12-14

Week 15-16

Week 17