CS410P/510 Programming Language Compilation Fall 2022

Instructor: Andrew Tolmach

Course Information

Textbook

Homework

Schedule

Highly subject to change!
Reading chapter references are to "Essentials of Compilation." Initial reading of each chapter should be done before the specified date.
Date Reading Topics Recording Other
Sep 27 Introduction
Sep 29 Ch. 1 Preliminaries; Integers; Python idioms
Oct 4 Ch. 2 Code Review; Variables
Oct 6 Implementing Variables
Oct 11 Ch. 4 Code Review; Register Allocation
Oct 13 Register Allocation
Oct 18 Ch. 5 Code Review; Booleans and Control Flow
Oct 20 Implementing Booleans and Control Flow
Oct 25 Ch. 6 Code Review; Loops and Dataflow Analysis
Oct 27 Implementing Loops and Dataflow Analysis
Nov 1 (none) Midterm: no class
Nov 3 (none) Optimization
Nov 8 Ch. 8 Code review; Functions
Nov 10 Implementing Functions
Nov 15 Ch. 7 Code Review; Tuples and Garbage Collection
Nov 17 Implementing Tuples and Garbage Collection
Nov 22 Ch. 7 Arrays
Nov 24 Thanksgiving; no class/td>
Nov 29 TBD Bytecode and efficient interpretation
Dec 1 Execution Architectures
Dec 6 Final exam (5:30-7:20pm)

Resources

  • We will be using the Python (v3.10+) language, 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.

  • Python Resources

  • Machine Code Resources

  • General Books on Compilers