This is my best guess as to the rate at which we will cover material; it may be revised.
| Date | Reading | Topic | Due |
|---|---|---|---|
| 2/5 | 1.0-2.2 | Introduction, syntax definition | |
| 2/6 | 2.3-2.4 | Syntax-directed translation | |
| 2/7 | Lab 1: Generating Code from ASTs | ||
| 2/9 | 3.0-3.1, 3.3, 3.5 | Lexical analysis | |
| 2/12 | Lexical-analyzer generators | ||
| 2/13 | 4.0-4.2 | Context-free grammars | HW 1 |
| 2/14 | Lab 1 (continued) | ||
| 2/16 | 4.3 | Writing a grammar | |
| 2/19 | 4.4.0-4.4.1 | Top-down parsing | |
| 2/20 | Rest of 4.4 | More on predictive parsing | |
| 2/21 | Lab 1 (continued) | HW 1, draft 2 | |
| 2/23 | 4.5-4.6.3 | Bottom-up parsing | Lab 1 |
| 2/26 | 4.7-4.7.3 | SLR parser generation | |
| 2/27 | No class | ||
| 2/28 | Lab 2: Scanning and Parsing | ||
| 3/2 | 4.7.4 | Canonical LR and LALR parser generation | HW 2 |
| 3/5 | 4.8, 4.9 | Using ambiguous grammars; parser generators | |
| 3/6 | 5.0-5.4 | Syntax-directed definitions | HW 3 |
| 3/7 | Lab 2 (continued) | ||
| 3/9 | Lab 2 (continued) | ||
| 3/12 | Lab 2 (continued) | HW 2, draft 2 | |
| 3/13 | 6.0-6.2 | Intermediate code | |
| 3/14 | 6.3, p.481 | Declarations and simple assignments | Lab 2 and HW 3, draft 2 |
| 3/16 | Lab 3: Adding Variables | ||
| 3/19 | 6.4 | Array access; type conversions | |
| 3/20 | 6.6 | Control flow | |
| 3/21 | Lab 3 (continued) | ||
| 3/23 | Lab 3 (continued) | ||
| 3/26 | Lab 3 (continued) | ||
| 3/27 | 7.0-7.4 | Run-time environments | Lab 3 |
| 3/28 | Preview of lab 4 | ||
| 3/30 | Lab 4: Control Flow and Scoping | ||
| 4/9 | Spring break (no class) | ||
| 4/10 | Lab 4 (continued) | ||
| 4/11 | Lab 4 (continued) | HW 4 | |
| 4/13 | No class (David in Oregon) | ||
| 4/16 | To be announced | ||
| 4/17 | 8.0-8.3 | Code generation | |
| 4/18 | Preview of lab 5 | Lab 4 | |
| 4/20 | Lab 5: Procedures | HW 4, draft 2 | |
| 4/23 | 8.4-8.5 | Basic blocks and flow graphs | |
| 4/24 | Lab 5 (continued) | ||
| 4/25 | 9.0-9.1 | Optimization | |
| 4/27 | 9.2 | Loops in flow graphs | HW 5 |
| 4/30 | Lab 5 (continued) | ||
| 5/1 | 9.3 | Data-flow analysis | |
| 5/2 | Lab 5 | ||
| 5/4 | Lab 6: Wildcard Lab | ||
| 5/7 | HW 6 and HW 5, draft 2 | ||
| 5/8 | |||
| 5/9 | Lab 6 (continued) | ||
| 5/11 | |||
| 5/14 | Lab 6 (continued) | ||
| 5/15 | 8.8 | Register allocation | HW 6, draft 2 |
| 5/16 | Synthesis and evaluation | Lab 6 | |