Skip to main content





Announcements

  • In Spring 2021, this course may be taken either in-person (possibly hybrid depending on the lecture room size) or remotely. More signups should be available in the near future. If you have your heart set on being in the course, it should be possible to be in the class even if only remotely.
  • Frequently asked questions:
    1. I didn't enroll in the course in December. Can I still join the course? Almost certainly. You can add yourself to the course waitlist when the add/drop period begins (during Feb 2–5, depending on your year). Note that only CS students were allowed to enroll in 4000/5000-level courses during preregistration.
    2. When does CS 4121/5121 meet? At the same time as CS 4120/5120.
    3. Is there any difference between 4120 and 5120? The latter is for MEng students and requires a little more work on the project.
    4. Is this course going to be similar to last time? Yes.
    5. When will this course be offered next? It is planned to be offered next in Spring 2022, although this is not guaranteed. If not, it should be offered in Spring 2023.
  • The 2021 Compilers Bakeoff is complete.
  • Overview

    An introduction to the specification and implementation of modern compilers. Topics covered include lexical scanning, parsing, type checking, code generation and translation, an introduction to optimization, and compile-time and run-time support for modern programming languages.  As part of the course, students build a working compiler for an object-oriented language.