Lecture Topics

DateDescription
September 29 Course introduction
slides
October 1 Regexps and scanners (slides from Thur. sec.)
October 4 Scanners (concl.); Grammars and ambiguity (start) (3.1-3.3)
slides
October 6 Grammars and ambiguity (concl.)
October 8 LR (bottom-up) parsing (3.4)
slides
October 11 LR parsing (concl.)
October 13 LR table construction (start) (3.5)
slides
October 15 LR conflicts, first/follow
October 18 ASTs & visitors;
slides
October 20 LL Parsing & recursive descent (3.3)
slides
October 22 Intro to semantics and type checking (4.1-4.2)
slides
October 25 Semantics; Attribute grammars (4.3)
October 27 Symbol tables and representation of types
October 29 Type checking / semantics wrapup; start x86-64 if time
November 1 x86-64 (everything you forgot from 351)
x86-64 slides
November 3 x86-64 (concl.)
November 8 Code shape I - basics
slides
November 10 Code shape II - objects and dynamic dispatch
slides
November 12 IRs
slides
November 15 IRs (concl.) Optimization overview (start)
slides
November 17 Project codegen bootstrap program; Opt. overview (cont.)
slides
November 19 Opt. overview (concl.)
November 22 Dataflow (start)
slides
November 24 Dataflow (concl.)
November 29 SSA (start)
ssa: slides
December 1 SSA (concl.)
December 3 Back end overview; instruction selection
slides
December 6 Instruction scheduling & register allocation (no new slides)
December 8 Dynamic languages
slides
December 10 GC & course wrap up
gc, wrapup