CS 4120 Fall 2013 Course Schedule

This schedule will be amended as the class progresses. Homework dates of unassigned homeworks are only approximate.

Lecture Date Lecture topic Readings Assignments
Parsing
1 Aug 28 Course outline, Introduction Course overview, Dragon 1-1.4  
2 30 Lexical analysis and regular expressions Appel 1, Dragon 3–3.3 PS1 out
Sep 2 Labor Day
3 4 Generating efficient lexers Appel 2.1–2.5, Dragon 3.4-3.10, DFA/NFA slides from 2011 PA1 out
4 6 Syntactic Analysis Appel 3.1, Dragon 4–4.3  
5 9 Top-down (LL) parsing Appel 3.2, Dragon 4.4 PS1 due
6 11 Bottom-up parsing Appel 3.3, Dragon 4.5 PS2 out, PA1 due, PA2 out (add deadline)
7 13 LR parsing and parser generators Appel 3.4, 4.1–4.2, Dragon 4.6-4.8  
Static semantics
8 16 AST construction and semantic analysis Appel 5  
9 18 Types Dragon 6.5 PS2 due, PS3 out
10 20 Formal Derivation  
11 23 Type Checking Cubex PA2 due, PA3 out
Code generation
12 25 Separate Compilation, Names, and Visitors Appel 7.1, Dragon 6.1–2  
13 27 Intermediate Code Appel 7.2–3  
14 30 IR lowering Appel 8.1 PS3 due, PS4 due, PS4 out
15 Oct 2 IR lowering (contd.) Appel 8.1  
16 4 Implementing Cubex  
17 7 Basic Blocks, CFGs, traces Appel 8.2  
18 9 Instruction selection Appel 9.1–2  
19 11 Calling Conventions PA3 due
Oct 14 Fall Break
20 16 Object layout and method dispatch Appel 14 PA4 out
21 18 Multiple inheritance [slides|notes (2011)] (drop deadline)
22 21 Miscellaneous OO  
23 23 Memory Management Appel 13  
24 25 Miscellaneous Features  
Optimization and program analysis
25 28 Introduction to optimization Muchnick 11,Dragon 9.1  
26 30 Live variable analysis Appel 10, Dragon 9.2.5, C&T 9.2–9.2.3  
27 Nov 1 Analysis frameworks Dragon 9.3, Muchnick 8.3–8.4  
28 4 Analysis examples PA4 due, PA5 out
29 6 Register allocation Appel 11.1–3, Dragon 8.8.4, Poletto/Sarkar  
30 8 Reaching definitions, webs, SSA Appel 19, Muchnick 8.1, 8.10–8.11, C&T 9.3  
31 11 Control flow analysis Appel 17.2,18.1  
32 13 Loop optimizations I Appel 18.2–3, Muchnick 14.1  
33 15 Loop optimizations II Appel 18.4–5, Muchnick 14.2, Muchnick 12.4, C&T 8.3.2  
34 18 Pointer analysis Appel 17.5, Muchnick 10, Dragon 12.4 PS5 out
35 20 Interprocedural analysis Appel 20.1–3  
36 22 PA6 - Extensions PA5 due, PA6 out
37 25 Linking and Loading PS5 due
Nov 27 Thanksgiving break
Nov 29 Thanksgiving break
38 Dec 2 TBD TBD  
39 4 TBD TBD  
40 6 TBD TBD  
Dec 10 PA6 due