EECS 483: Compiler Construction - Winter 2024


If you have recently registered for the course, please see the additional information on Piazza, and contact the course staff if you need help.

Course Information


  • Max New

    office hours: Mondays 4-5pm, Thursday 10-11am, and by appointment, Beyster 4628 and online, use the office hours queue


  • Eric Giovannini

    office hours: Tuesdays 3-5pm, Thursdays 3:30-4:30pm, Beyster Atrium


  • Tingting Ding

    office hours: Tuesdays 2-3pm, Beyster 1637 Beyster Table 2


Homework Projects

  • HW1: Hellocaml!

    • Due: Tuesday, January 23rd at 11:59pm

  • HW2: X86lite simulator

    • Due: Tuesday, February 6th at 11:59pm

  • HW3: LLVMlite backend

    • Due: Tuesday, February 20th at 11:59pm

  • HW4: Oat language compiler v.1

    • Due: Tuesday, March 26th at 11:59pm

  • HW5: Oat language compiler v.2

    • Due: Tuesday, April 9th at 11:59pm

  • HW6: Program Analysis & Optimizations

    • Due: Tuesday, April 23th at 11:59pm

Textbooks and Resources

There is no required textbook for this course. However, you may find the following references useful for digging deeper into course topics.

On Principles of Compiler Construction

  1. Compilers: Principles, Techniques, and Tools (2nd Edition) by Aho, Lam, Sethi, and Ullman

  2. Advanced Compiler Design and Implementation by Muchnick

  3. Modern Compiler Implementation in ML by Appel

On Types and Type Systems

  1. Types and Programming Languages by Pierce

  2. Advanced Topics in Types and Programming Languages by Pierce et al.

On Program Analysis

  1. Principles of Program Analysis by Nielson, Nielson, and Hankin

On OCaml

  1. Introduction to Objective Caml by Jason Hickey

  2. Real World OCaml by Yaron Minsky, Anil Madhavapeddy, and Jason Hickey