CS 131: Compilers - Fall 2024

Course Information

Instructor

Teaching Assistants

  • You Cunhan 尤存翰

    office hours: Monday 7:00-8:00pm, Location: SIST 1B108

  • Zheng Jiaye 郑嘉业

    office hours: Thursday 7:15-8:15pm, Location: SIST 1A104

Coordinates

  • Time: Tuesday, Thursday, 13:00 - 14:30

  • Location: 1D107, SIST

  • Online discussion: Piazza

  • Homework submission: Blackboard

Homework Projects

  • HW1: Hellocaml!

    • Due: September 30th at 11:59pm

  • HW2: X86lite simulator

    • Due: October 21st at 11:59pm

  • HW3: LLVMlite backend

    • Due: November 4th at 11:59pm

  • HW4: Oat language compiler v.1

    • Due: November 25th at 11:59pm

  • HW5: Oat language compiler v.2

    • Due: December 11th at 11:59pm

  • HW6: Program Analysis & Optimizations

    • Due: December 30th 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