Lecture |
Date |
Topic |
Slides |
Due |
Assignments & Reading |
| 0 | Jan 22 | Questionnaire handout only (or just enter it online) | Questionnaire (Q) | ||
| 1 | 24 |
Course overview | HW1: lexical analysis, Appel 1 | ||
| 2 | 26 | Regular expressions | Q | PA1: lexical analysis, Appel 2.1-2.2 | |
| 3 | 29 | Automating lexical analysis | Appel 2.3-2.5 | ||
| 4 | 31 | Grammars and parsing | HW1 | HW2: parsing, Appel 3.1 | |
| 5 | Feb 2 | Top-down (LL) parsing | Appel 3.2 | ||
| 6 | 5 | Bottom-up parsing | Appel 3.3 | ||
| 7 | 7 | LR parsing | PA1 | PA2: syntactic and semantic analysis, Appel 3.4 | |
| 8 | 9 | Parser generators and ASTs | Appel 4 (ADD DEADLINE) | ||
| 9 | 12 | Semantic analysis | Appel 5.1-2 | ||
| 10 | 14 | Types | HW2 | Appel 5.3 | |
| 11 | 16 | Static semantics | Appel 5.4 | ||
| 12 | 19 | More static semantics | HW3: semantic analysis, Iota Static Semantics | ||
| 13 | 21 | Intermediate code | Appel 6, Appel 7.1-2 | ||
| 14 | 23 | Syntax-directed translation | PA2 | PA3: IR generation, Appel 7.3 | |
| 15 | 26 | Canonical IR | Appel 8.1 | ||
| 16 | 28 | Basic blocks, tiles | Appel 8.2 | ||
| 17 | Mar 2 |
Code generation 1 | HW3 | Appel 9.1 | |
| 5 | Prelim 1 review, in class | ||||
6 |
Prelim 1, 7:30-9:30PM in Phillips 203. Covers material in lectures 1-15. Open book. |
||||
| 7 |
(no class) |
||||
| 18 | 9 | Code generation 2 | Appel 9.2-3 (DROP DEADLINE) | ||
| 19 | 12 | Modules and abstract data types | PA3 | PA4: code generation | |
| 20 | 14 | Objects | Appel 14.1-2 | ||
| 21 | 16 | Objects: subtyping | |||
Spring Break |
|||||
| 22 | 26 | Objects: implementation | Appel 14.3-5 | ||
| 23 | 28 | Multiple inheritance | |||
| 24 | 30 | Introduction to optimization | HW4: objects and optimization, Muchnick 11 | ||
| 25 | Apr 2 | Live variable analysis | Appel 10 | ||
| 26 | 4 | Register allocation | PA4 | PA5: Iota+, Appel 11, 12 | |
| 27 | 6 | Dataflow analysis | Appel 17, Muchnick 8.1, Muchnick 12, 13 | ||
| 28 | 9 | Dataflow analysis frameworks | Muchnick 8.2-8.5 | ||
| 29 | 11 | Control flow analysis | Appel 18, Muchnick 7.1-4, 14.1 | ||
| 30 | 13 | Loop optimizations | HW4 | Muchnick 17.1 | |
| 31 | 16 | Instruction scheduling | Muchnick 5.7 | ||
| 17 | Prelim 2, 7:30-9:30PM, Olin 165. Emphasizes material in lectures 16-30. Open book. |
||||
| 18 |
(no class) |
||||
| 32 | 20 | Alias analysis | Appel 17.5 | ||
| 33 | 23 | Memory management | Appel 13 | ||
| 34 | 25 | Linking and shared objects | PA6: register allocation, Levine | ||
| 35 | 27 | First-class functions | PA5 | Appel 6, 15.1-2 | |
| 36 | 30 | Parametric polymorphism | Appel 15.3-15.6 | ||
| 37 | May 2 |
Exceptions | |||
| 38 | 4 |
Dynamic types | PA6 | Appel 16.1, 16.3-4 | |
Final project demonstration: May 10,11, 1-4:30PM, Upson 317 |
|||||