Week 15 · Dec 14 – Dec 20, 2026 · Measure it, document it, defend it.
Start here
Lecture notes →
No new syntax. What separates a project from a piece of engineering: honest measurement, an accurate account of the limits, and knowing what a production compiler does that yours does not.
The full theory for this topic, with diagrams, worked examples and Dragon Book references. This page you are on is only an index.
Your starter code
The compiler you are extending this topic, with every TODO spelled out.student/topic-6-complete-compiler/
Assignment: Project 6 · Complete Compiler (Benchmark)
Full requirements and submission checklist. Due Dec 20, 2026.
Stuck on the tools rather than the theory? The toolchain tutorials cover make, Git and GitHub, flex and bison.
Class activities
One per class meeting. Ungraded — they exist so that the assignment is not the first time you meet the idea.
Activity 1 — Benchmark Your Compiler
Three benchmarks, four metrics, three repeated runs, one Amdahl calculation — and a number you could defend to a sceptic.
Activity 2 — Cold-Start README Test and Demo Dry Run
Somebody who has never seen your compiler tries to build it from your README. Then you explain it out loud and they interrupt.