Lecture Topics

DateDescription
September 25 Course introduction
slides
September 27 Regexps and scanners (cont., slides from Thur. sec.)
September 30 Scanners (concl.); Grammars and ambiguity (3.1-3.3)
slides
October 2 Grammars and ambiguity (cont.)
October 4 LR (bottom-up) parsing (3.4)
slides
October 7 LR parsing (concl.)
October 9 LR table construction (3.5); LR conflicts
slides
October 11 LR conflicts, first / follow
October 14 LR/SLR wrapup; ASTs & visitors;
slides
October 16 LL Parsing & recursive descent (3.3)
slides
October 18 Intro to semantics and type checking (4.1-4.2)
slides
October 21 Semantics; Attribute grammars (4.3)
October 23 Attribute grammars (examples)
October 25 Symbol tables and representation of types
October 28 Semantics (wrapup); x86-64 (everything you forgot from 351)
slides
October 30 x86-64 function calls & wrapup
November 4 Code shape I - basics
slides
November 6 Code shape II - objects and dynamic dispatch
slides
November 8 Codeshape (concl.); IRs (start)
slides
November 13 IRs (concl.); start project codegen
November 15 Optimization overview
slides
November 18 Opt. overview (concl.); Dataflow (start)
slides
November 20 Dataflow (concl.); SSA (start.)
slides
November 22 SSA
November 25 SSA
November 27 Dynamic langauges
slides
December 2 Back end overview; instruction selection
slides
December 4 Instruction scheduling; register allocation (no new slides)
December 6 Garbage collection
slides