Lecture Topics

DateDescription
September 25 Course introduction
slides
September 27 Regexps and scanning
slides (same as Thur. sections)
September 30 Scanners (concl.); Grammars and ambiguity (start) (3.1-3.2)
slides
October 2 Grammars and ambiguity (concl.)
October 4 LR (bottom-up) parsing (start) (3.4)
slides
October 7 LR parsing (concl.); LR table construction (3.5) start
slides
October 9 LR table construction (3.5) (cont.)
October 11 LR conflicts, first/follow (no new slides)
October 14 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 Symbol tables and representation of types (no new slides)
October 23 Type checking / semantics wrapup (no new slides)
October 25 IRs
slides
October 28 x86-64 (everything you forgot from 351)
slides
October 30 x86-64 function calls
November 4 Code shape I - basic constructs
slides
November 6 Code shape I (concl.); II - objects and dynamic dispatch (start)
slides
November 8 Code shape II (concl.)
November 13 Opt. overview (start); project codegen & bootstrap (start)
codegen slides, opt overview
November 15 Opt. overview (concl)
November 18 Dataflow (start)
slides
November 20 Dataflow (concl.); SSA (start)
SSA slides
November 22 SSA (concl.) - no new slides
November 25 Back end overview; instruction selection
slides
November 27 Dynamic languages
slides
December 2 Instruction scheduling & register allocation (no new slides)
December 4 GC & course wrap up
slides: gc, wrapup
December 6 No class; Extra office hours in lecture room during class time