Lecture Topics

DateDescription
September 27 Course introduction
slides
September 29 Regexps and scanners
slides (same as Thur. sections)
October 2 Scanners (concl.); Grammars and ambiguity (start) (3.1-3.3)
slides
October 4 Grammars and ambiguity (concl.); start LR parsing
October 6 LR (bottom-up) parsing (3.4)
slides
October 9 LR parsing (concl.)
October 11 LR table construction (start) (3.5)
slides
October 13 LR conflicts, first/follow
October 16 ASTs & visitors;
slides
October 18 LL Parsing & recursive descent (3.3)
slides
October 20 Intro to semantics and type checking (4.1-4.2)
slides
October 23 Symbol tables and representation of types
October 25 Type checking / semantics wrapup
October 27 IRs
slides
October 30 x86-64 (everything you forgot from 351)
x86-64 slides
November 1 x86-64 (concl.); Code Shape I - basics (start)
slides
November 6 Code shape I - basics (concl.); Code Shape II - objects and dynamic dispatch (start)
slides
November 8 Code shape II - objects and dynamic dispatch (cont.)
November 13 Code shape II (concl.); Optimization overview (start)
opt slides
November 15 Opt. overview (cont.); project codegen & bootstrap (start)
codegen slides
November 17 Opt. overview (concl.)
November 20 Dataflow (start)
slides
November 22 Dataflow (concl.)
November 27 SSA (start)
slides
November 29 SSA (concl.); Back end overview (start)
slides
December 1 Instruction selection & scheduling (no new slides)
December 4 Register allocation (no new slides)
December 6 Dynamic languages
slides
December 8 GC & course wrap up
gc, wrapup