| Date | Topic | Readings/Notes | Homework | |
| M | 29 | intro to compilers, laying out our semester project | Chap. 1, Lab 1 | |
| W | 31 | NO CLASS: Cesar Chavez' Birthday. | ||
| F | 2 | More about Footle | Chap. 2 | |
| M | 5 | Scanning | Chap. 3 | |
| W | 7 | ?? Parsing | Sections 4.1,4.2 | |
| F | 9 | NO CLASS: Furlough I. | Sections 5.1–5.5 | |
| M | 12 | Closures and Environments | Assignment 1 due | |
| W | 14 | Intro to LLVM | Sections 5.6–5.8 | |
| F | 16 | More on LLVM, representing values | ||
| M | 19 | Code Generation for varrefs | Chapter 6 | |
| W | 21 | creating new environment frames / the static pass, in more detail | ||
| F | 23 | NO CLASS: Furlough II | ||
| M | 26 | sample code walk, representing footle values | Assignment 2 due | |
| W | 28 | representing footle values in memory, generating LLVM | ||
| F | 30 | generating LLVM for scopes | Lab 2 | |
| M | 3 | Metaprogramming: writing Java in Scheme | Chapter 7 | |
| W | 5 | NO CLASS: Furlough II | Assignment 3 due | |
| F | 7 | representing and constructing Strings and Floats | ||
| M | 10 | Intro to Sparc assembly | ||
| W | 12 | SPARC assembly, SPARC registers | ||
| F | 14 | Basic Blocks, Register Allocation | Milestone 1 due | |
| M | 17 | Basic Blocks, Instruction Selection | ||
| W | 19 | Building the Interference Graph | ||
| F | 21 | All the way through with a trivial function. | Milestone 2 due | |
| M | 24 | a simple analysis: 0-CFA | ||
| W | 26 | TBA | ||
| F | 28 | TBA | ||
| M | 31 | 0-CFA: return, objects | ||
| W | 2 | TBA | ||
| F | 4 | TBA | ||