Lecture Topics

DateDescription
September 28 Course introduction
slides
September 30 Regexps and scanners (slides from Thur. sec.)
October 3 Scanners (concl.); Grammars and ambiguity (start) (3.1-3.3)
slides
October 5 Grammars and ambiguity (concl.)
October 7 LR (bottom-up) parsing (3.4)
slides
October 10 LR parsing (concl.)
October 12 LR table construction (start) (3.5)
slides
October 14 LR conflicts, first/follow
October 17 ASTs & visitors;
slides
October 19 LL Parsing & recursive descent (3.3)
slides
October 21 Intro to semantics and type checking (4.1-4.2)
slides
October 24 Symbol tables and representation of types
October 26 Type checking / semantics wrapup
October 28 IRs
slides
October 31 x86-64 (everything you forgot from 351)
x86-64 slides
November 2 x86-64 (concl.)
November 7 Code shape I - basics
slides
November 9 Code shape II - objects and dynamic dispatch
slides
November 14 Code Shape II (concl.); Optimization overview (start)
opt slides
November 16 Opt. overview (cont.); project codegen & bootstrap (start)
codegen slides
November 18 Opt. overview (cont.)
November 21 Opt. overview (concl.); Dataflow (start)
slides
November 23 Dataflow (concl.)
November 28 SSA (start)
slides
November 30 SSA (concl.)
December 2 Back end overview; instruction selection
slides
December 5 Instruction scheduling & register allocation (no new slides)
December 7 Dynamic languages
slides
December 9 GC & course wrap up
gc