CS 516: Compilers - Spring 2024

Course Information

Instructor

Teaching Assistants

  • Mihai Nicola

  • Robert Feliciano

Note

All Locations, Times, Contact in Canvas

Homework Projects

Points

Description

Due (tentative)

75pts

HW1: HelloCaml

2/2

25pts

HW2: X86 Simulator

2/9

75pts

HW3: X86 Assembler

2/16

100pts

HW4: LLVM Lite

3/2

25pts

HW5: Lexing and Parsing

3/23

85pts

HW6: Frontend Compilation

4/06

50pts

HW7: Typechecking

4/13

50pts

HW8: Compiling structs and function pointers

4/20

30pts

HW9: Dataflow Analysis, Alias Analysis, Dead Code

4/27

70pts

HW10: Constant Propagation, Register Allocation, Experiments

5/04

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