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 |