CS 4120 Fall 2009 Course Schedule

Lecture notes fully updated through Lecture 31.

Lecture Date Lecture topic Readings Assignments
Parsing
1 Aug 28 Course overview Course overview  
2 31 Lexical analysis and regular expressions Appel 1 PS1 out
3 Sep 2 Automating lexical analysis Appel 2.1–2.5  
4 4 Grammars and parsing Appel 3.1  
5 7 Top-down (LL) parsing Appel 3.2 PS1 due, PA1 out 9/5
6 9 Bottom-up parsing Appel 3.3  
7 11 LR parsing and parser generators Appel 3.4, 4.1–4.2 [example] PS2 out 9/10
Static semantics
8 14 Semantic analysis and symbol tables Appel 5 PA1 due, PA2 out
9 16 Types (Dragon 6.5)  
10 18 Type systems   PS2 due (add deadline)
11 21 Subtyping    
12 23 Modules, type representation, visitors [notes, slides] Appel 4.3 PA2 due
Code generation
13 25 Intermediate code Appel 7.1, Dragon 6.1–2 PA3 out 9/24
14 28 Syntax-directed translation Appel 7.2–3  
15 30 More syntax-directed translation    
16 Oct 2 IR lowering, basic blocks [notes, slides] Appel 8.1–2  
17 5 Tiles and instruction selection Appel 9.1–2 PA3 due, PA4 out
18 7 Finishing code generation Appel 9.3 PS3 out 10/6
Optimization and program analysis
19 9 Introduction to optimization (Muchnick 11,Dragon 9.1)  
Oct 12 Fall Break
20 14 Live variable analysis (Maks Orlovich) Appel 10, (Dragon 9.2.5)  
21 16 Dataflow analysis (Dragon 9.2) PS3 due 10/15 (drop deadline)
22 19 Dataflow analysis frameworks (Dragon 9.3)  
Oct 20 Prelim 1: 7:30pm, Phillips 219
Oct 21 No class (post-exam)
23 23 Register allocation Appel 11.1–3, (Dragon 8.8.4)  
24 26 Control flow analysis Appel 17.2,18.1 PA4 due, PA5 out
  28 Recitation: PA5 review ABI specification  
Oct 30 No class—work on project
25 Nov 2 Loop optimizations Appel 18.2–3, (Muchnick 14.1)  
26 4 Induction variable optimizations Appel 18.4–5, (Muchnick 14.2)  
27 6 Redundancy elimination Appel 17.2–3, (Muchnick 12.4,13.1, Dragon 9.4-5)  
28 9 Pointer/alias analysis Appel 17.5 (Muchnick 10, Dragon 12.4) PA5 due, PA6 out
29 11 Interprocedural analysis, iterative fixed-point algorithms Appel 20.1–3  
Supporting advanced language features
30 13 Object layout and method dispatch Appel 14  
31 16 Multiple inheritance   PS4 out
32 18 Advanced object features    
33 20 Higher-order and first-class functions Appel 15  
34 23 Memory management Appel 13  
Nov 25 Thanksgiving break
Nov 27 Thanksgiving break
35 30 Linking and shared libraries   PS4 due, PA6 due 11/24, PA7 out 11/24
Dec 1 Prelim 2: 7:30pm, Phillips 219
36 Dec 2 Parametric polymorphism Appel 16  
37 4 Exceptions and beyond    
Dec 16 Final project demos and PA7 due: December 16–18