A compiler is a proof system for syntax and a constructor of semantics, and every semantic question it seems to answer is a chosen approximation. Fourteen sessions that build starc, the compiler in selfie, extension by extension, and end with the program as a formula and a solver. Week 1 follows the selfie talk. Press → to begin a deck, n for the notes, t for the clock, d for the theme.
| wk | station | deck | assignment | |
|---|---|---|---|---|
| 1 | spine | What is Selfie? | print-your-name | |
| 2 | I, II | The Scanner | hex-literal | |
| 3 | II | The Parser | ||
| 4 | III | Symbols and Types | bitwise-shift-compilation | |
| 5 | II | Expressions | bitwise-shift-execution | |
| 6 | III | Statements | bitwise-and-or-not, logical-and-or-not | |
| 7 | III | Procedures | for-loop, lazy-evaluation | |
| 8 | III | Self-Compilation | array-access | |
| 9 | III | Optimisation and Rice | array-allocation | |
| 10 | IV | Semantics as a Formula | array-multidimensional | |
| 11 | IV | SAT | struct-declaration | |
| 12 | IV | Bounded Model Checking | struct-execution, rotor-check | |
| 13 | V | Generated Code | ||
| 14 | VI | What is a Compiler? |
Assignments are autograded; see assignments/compiler-assignments.md and the grader. Companion classes: Introduction to Computer Science and Systems Engineering.