Lecture Topics

DateDescription
March 31 Course introduction
slides
April 2 Intro. to parsing; regexps and scanning (Read ch. 1, 2.1-2.4)
slides (incomplete; to be updated)
April 4 Regexps and Finite Automata (cont.)
April 7 Scanners (concl.); Grammars and ambiguity (start) (3.1-3.2)
slides
April 9 Grammars and ambiguity (concl.)
April 11 LR (bottom-up) parsing (start) (3.4)
slides
April 14 LR parsing (concl.)
April 16 LR table construction (3.5)
slides
April 18 LR conflicts, first/follow
April 21 ASTs & visitors
slides
April 23 LL Parsing & recursive descent (3.3)
slides
April 25 Intro to Checking (Semantics and Types) (4.1-4.2)
slides
April 28 Symbol tables and representation of types (no new slides)
April 30 Checking (Semantics and Types) wrapup (no new slides)
May 2 IRs
slides
May 5 x86-64 (everything you forgot from 351)
slides
May 7 x86-64 function calls; Code Shape I - basics (start)
May 12 Code shape I (start)
slides
May 14 Code Shape I (concl.); Code shape II - objects and dynamic dispatch (start)
slides
May 16 Code shape II (concl.)
May 19 Opt. overview
slides
May 21 project codegen & bootstrap; Dataflow (start)
codegen slides, dataflow slides
May 23 Dataflow (concl.)
May 28 SSA (start)
SSA slides
May 30 Back end overview; instruction selection
slides
June 2 Instruction scheduling
slides
June 4 Register allocation & course wrap up
wrapup
June 6 Guest Lecture from Hal on Garbage Collection
slides