Lecture Topics

DateDescription
September 24 Course introduction
slides
September 26 Regexps and scanning
slides (same as Thur. sections)
September 29 Scanners (concl.); Grammars and ambiguity (start) (3.1-3.2)
slides
October 1 Grammars and ambiguity (concl.)
October 3 LR (bottom-up) parsing (start) (3.4)
slides
October 6 LR parsing (concl.)
October 8 LR table construction (3.5) (start)
slides
October 10 LR (cont.); conflicts, first/follow (no new slides)
October 13 ASTs & visitors
slides
October 15 LL Parsing & recursive descent (3.3)
slides
October 17 Intro to semantics and type checking (2nd ed: 4.1-4.2, 5.5; 3rd ed: 4.5, 5.4, 5.5)
slides
October 20 Symbol tables and representation of types (no new slides)
October 22 Type checking / semantics wrapup (no new slides)
October 24 IRs (2nd ed: 5.1-5.4; 3rd ed: 4.1-4.4)
slides
October 27 x86-64 (everything you forgot from 351)
slides
October 29 x86-64 function calls
November 3 Code shape I - basic constructs (2nd ed: 7.1-7.5, 7.8; 3rd ed: 7.1-7.5)
slides
November 5 Code shape I (concl.); II - objects and dynamic dispatch (start) (2nd ed: 6.2-6.4; 3rd ed: 6.3, 6.4)
slides
November 7 Code shape II (cont.)
November 10 Code shape II (concl.); Opt. overview (start) (8.1-8.3)
opt overview
November 12 Opt. overview (concl); project codegen & bootstrap (start) (8.4-8.7)
codegen slides
November 14 Dataflow (start) (9.1-9.2)
slides
November 17 Dataflow (concl.)
November 19 SSA (9.3; Appel: 19)
SSA slides
November 21 SSA (concl.); Back end overview; instruction selection (2nd ed: 11.1-11.4; 3rd ed: 11.1, 11.2, 11.4)
slides
November 24 Instruction scheduling & register allocation (no new slides) (12.1-12.4, 13.1-13.4)
November 26 No class - extra office hours in regular classroom instead
December 1 Dynamic languages
slides
December 3 Memory models & concurrency
slides
December 5 GC & course wrap up (6.6)
slides: gc, wrapup