CS4212: Compiler Design (Autumn 2023)
Instructor: Ilya Sergey
Lectures: Mondays, 3:00pm-6:00pm
Teaching Assistant: Vladimir Gladstein
Week 11: Code Optimizations and Dataflow Analysis [W11 Slides]
Week 12: Register Allocation and Wrap-Up [W12 Slides]
This course’s GitHub Organisation (please, email me your GitHub handle to have access)
Textbooks and Additional Resources
On General Principles of Compiler Construction
Compilers: Principles, Techniques, and Tools (2nd Edition) by Aho, Lam, Sethi, and Ullman
Advanced Compiler Design and Implementation by Muchnick
Modern Compiler Implementation in ML by Appel
On Compiling Functional Languages
The Implementation of Functional Programming Languages by Simon Peyton Jones
On Types and Programming Language Foundations
Types and Programming Languages by Pierce
Advanced Topics in Types and Programming Languages by Pierce et al.
Software Foundations by Pierce et al.
On Program Analysis
Static Program Analysis by Anders Møller and Michael I. Schwartzbach
Principles of Program Analysis by Nielson, Nielson, and Hankin
Most of the materials and assignments for this module have been adapted, with permission, from the UPenn’s compiler class by Steve Zdancewic.