Programming Language Design and Implementation (Autumn 2021)
Instructor: Ilya Sergey
Lectures: Wednesdays, 9:00am-12:00pm
Location: Yale-NUS College, Elm Common Lounge (level 2, next to Elm Dining Hall)
Office hours: Mondays, 3:30pm-5:00pm, #RC3-01-03E (Cendana)
Peer Tutor: Hoang Ngoc Tram
Tutoring Sessions: Saturdays, 1-3pm, Classroom 22 (RC3-02-03)
Lecture materials will be posted gradually as we progress through the course.
Week 11: Code Optimizations [W11 Slides]
Week 12: Dataflow Analysis [W12 Slides]
Week 13: Register Allocation and Wrap-Up [W13 Slides]
This course’s GitHub Organisation (please, email me your GitHub handle to have access)
Textbooks and Resources
On 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 Types and Type Systems
Types and Programming Languages by Pierce
Advanced Topics in Types and Programming Languages by Pierce et al.
On Program Analysis
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.