CS410P/510 Essentials of Compilation Winter 2026

Instructor: Andrew Tolmach

Please fill out this form as soon as possible.

Course Information

Textbook

Homework

Schedule

Highly subject to change!
Reading chapter references are to the PSU-specialized version of "Essentials of Compilation." Initial reading of each chapter should be done before the specified date.
Date Reading HW Due Topics Recording Resources
Jan 6 Introduction (recording--missing beginning) Rough lecture notes CS358 Lecture on compiler Structure
Jan 8 Ch. 1 Preliminaries; Integers; Python idioms (recording)
Jan 12 @ 4pm week1
Jan 13 Ch. 2 Code Review; Variables (recording)
Jan 15 Implementing Variables (recording)
Jan 19 @ 4pm week2
Jan 20 Ch. 4 Code Review; Register Allocation (recording) liveness example
Jan 22 Register Allocation (recording)
Jan 26 @ 4pm week3
Jan 27 Ch. 5 Code Review; Booleans and Control Flow (recording)
Jan 29 Implementing Booleans and Control Flow (recording)
Feb 2 @ 4pm week4
Feb 3 Ch. 6 Code Review; Loops and Dataflow Analysis
Feb 5 Dataflow Analysis
Feb 10 (none) Midterm (in class)
Feb 12 week5 Optimization
Feb 16 @ 4pm week6
Feb 17 Ch. 7 Code review; Tuples and Garbage Collection
Feb 19 Implementing GC
Feb 23 @ 4pm week7
Feb 24 Ch. 8 Code review; More Garbage Collection
Feb 26 Functions; Implementing Functions
Mar 3 (none) Compiler Verification
Mar 5 Java Virtual Machine and Interpretation
Mar 9 @ 4pm week8
Mar 10 Nystrom Ch.2 Bytecode and efficient interpretation
Mar 12 Execution Architectures
Thursday Mar 19 Final exam (11:10am-1pm)

Resources

  • We will be using the Python (v3.12+) language, basedpyright type checker, linux or MacOS operating system, and X86-64 computer architecture for the homework in this course.
  • You may choose to work (remotely) on the CS department linux machines. New students can obtain access to the CS linux machines via their MCECS account, which can be activated using CRAM.

  • Github Resources
  • Python Resources

  • Machine Code Resources

  • General Books on Compilers