CIS400 — Fall 2021

Introduction to Compiler Construction

Date Type Unit Video
8/31 Lecture L1 Course Introduction (PDF and .key)
9/1 Lecture L2 Case splitting and lists intro (L4 of 352) and recursion over lists (L5 of 352)
9/7 Lecture L3 Racket boot-up
9/9 Lecture L4 IfArith Intro, Racket-based interpreter (PDF and .key)
9/9 Lecture L4 Livecoding from L4
9/14 Lecture L5 Lambda Calculus Intro (PDF and .key)
9/14 Livecoding L5 Lambda Calculus Livecoding (starter code)
9/16 Lecture L6 Alpha/eta subst., Capture-Avoiding Substitition, reduction strategies
9/21 Lecture L7 Desugaring LetRec (Project 2) (PDF and .key)
9/23 Lecture L8 Closures and Closure-Creating Interpreters (PDF and .key)
9/28 Lecture L9 Continuations and call/cc (video)Additional slides (PDF and .key)
9/30 Lecture L10 Implementing call/cc and the CEK machine (PDF and .key)
10/5 Lecture L11 A-Normal form and Continuation Passing Style (PDF and .key)
10/7 Lecture L12 Introducing Project 3
10/12 Lecture L13 ANF Conversion Algorithm (PDF and .key)
10/14 Lecture L14 CPS Conversion (PDF and .key)
10/19 Lecture L15 Midterm handout (on Slack) and class review.
10/21 Lecture L16 Closure conversion: top-down and bottom up (PDF and .key)
10/26 Lecture L17 Closure Conversion and Assembly Intro (PDF and .key)
10/28 Lecture L18 Assembly Continued
11/2 Lecture L19 Project 4 and LLVM (PDF and .key)
11/4 Lecture L20 Implementing closure-conversion (from P4)
11/9 Lecture L21 Parsing Introduction (PDF and .key)
11/11 Lecture L22 Parsing Continued...
.. Lecture L23 Static Analysis Introduction / Register Allocation
.. Lecture L24 Abstracting Abstract Machines (AAM)-based analysis
.. Lecture L25 Type Systems
.. Lecture L24 Type Systems continued