CS 421: Programming Languages and Compilers
Lecture slides from Spring 2023
Video of class lectures (Channel CS 421 - FALL 2023)
Lecture Schedule for Fall 2023
Schedule subject to change as course progresses.
Lecture slides for lectures not yet given are preliminary, and may change.
Day Date Topic Slides and Code Videos Asmt Given Asmt Due
Week 1  
1Aug 22 Course Introduction, Introduction to OCaml slides: (PDF) (Google Slides) Lect 1 MP1: OCaml: Basic Ocaml
2Aug 24 Environments and Closures slides: (PDF) (Google Slides) Lect 2 WA1: Evaluation and Evironments
Week 2  
3Aug 29
Quiz 1 on MP1
3Aug 29 Tuples, Partial Application, Currying, and Pattern Matching slides: (PDF) (Google Slides) Lect 3 MP2: Pattern Matching and Recursion MP1
4Aug 30 Recursion, Evaluating Expressions in OCaml slides: (PDF) (Google Slides) Lect 4 WA2: Evaluating the Application of a Function WA1
Week 3  
5Sep 5 Lists, List Pattern Matching, Recursion over Lists, Structural Recursion slides: (PDF) (Google Slides) Lect 5 MP3: Patterns of Recursion, Higher-order Functions MP2
6Sep 7 Forms of Recursion and Higher-Order Recursive Operators slides: (PDF) (Google Slides) Lect 6 WA3XC: Order of Evaluation WA2
Week 4  
7Sep 12
Quiz 2 on MP3
7Sep 12 More Tail Recursion, Continuations slides: (PDF) (Google Slides) Lect 7 MP4: Higher-Order Functions and Continuation-Passing Style MP3
8Sep 14 Continuation Passing Style (CPS) Transformation slides: (PDF) (Google Slides) Lect 8 WA4: CSP Transformation; Working with Mathematical Specifications
9/14-9/16
Midterm 1, CBTF
Covers through Leture 6
Week 5  
9Sep 19 User Defined Types in Ocaml, Data Constructors and Pattern Matching

Lecture to be recorded in advance. No in-person lecture.
slides: (PDF) (Google Slides)

Lecture to be recorded in advance. No in-person lecture.
Lect 9 MP5: Working with ADTs: Implementing CPS Transformation
10Sep 21 Recursive Data Types in OCaml slides: (PDF) (Google Slides)

Lect 10 WA4 was given 9/14 WA3XC
Week 6  
11Sep 26 Types and Type Systems slides: (PDF) (Google Slides) Lect 11 MP5 was given 9/19 MP4
12Sep 28 Type Derivation slides: (PDF) (Google Slides) Lect 12 WA5: Polymorphic Type Derivation WA4
Week 7  
13Oct 3
Quiz 3 on MP5
13Oct 3 Monomorphic and Polymorphic Type Derivation I will be away at a Dagstuhl seminar. Prof. Elsa Gunter will cover. See her section's lecture webpage for slides. Lect 13 MP6: A Unification-Based Type Inferencer MP5
14Oct 5 Polymorphic Type Derivation I will be away at a Dagstuhl seminar. Prof. Elsa Gunter will cover. See her section's lecture webpage for slides. Lect 14 WA6: Incremental Unification Algorithm WA5
Week 8  
15Oct 10 Type Inference slides: (PDF) (Google Slides) Lect 15 MP7: Unification Algorithm
16Oct 12 Day Off for MT2
10/12-10/14
Midterm 2, CBTF
Covers Lecture 7 - 14
Week 9  
17Oct 17 Unification slides: (PDF) (Google Slides) Lect 17 WA7: Regular Expressions MP6
18Oct 19 Regular Expressions, OCamllex slides: (PDF) (Google Slides) Lect 18 MP8: A Lexer for PicoML
WA6
Week 10  
19Oct 24
Quiz 4 on MP7
19Oct 24 OCamllex, BNF Grammars slides: (PDF) (Google Slides) Lect 19 MP8 was given on 10/19 MP7
20Oct 26 Parse Trees, Parsing, Ambiguous Grammars, Ocamlyacc slides: (PDF) (Google Slides) Lect 20 WA8: Parse Trees WA7
Week 11  
21Oct 31 LR Parsing, Action and Goto Tables slides: (PDF) (Google Slides) Lect 21 MP9: A Parser for PicoML MP8
22Nov 2 Disambiguating Grammars notes: (PDF) Lect 22 WA9: Natural and Transition Semantics WA8
Week 12  
23Nov 7 Natural Semantics slides: (PDF) (Google Slides) Lect 23 MP10: An Evaluator for PicoML MP9
24Nov 9 Day off for MT3
11/9-11/11
Midterm 3, CBTF
Covers Lecture 15-22
Week 13  
25Nov 14 Transition Semantics slides: (PDF) (Google Slides) Lect 25 MP11: A Transition Semantics Evaluator for CPS
26Nov 16 Intro to Lambda Calculus slides: (PDF) (Google Slides) Lect 26 WA10:Lambda Calculus WA9
Week of Fall Break  
Nov 21 Thanksgiving
Nov 23 Thanksgiving
Week 14  
27Nov 28
Quiz 5 on MP10
27Nov 28 Lambda Calculus - Evaluation slides: (PDF) (Google Slides) Lect 27 WA11: Hoare Logic MP10
28Nov 30 Intro to Axiomatic Semantics slides: (PDF) (Google Slides) Lect 28 WA10
Week 15  
29Dec 5 Hoare Logic (cont) slides: (PDF) (Google Slides) Lect 29 MP11
 
Dec 6 Last day of classes WA11, WA3XC?
Finals Week  
Dec 12 FINAL (8:00 AM - 11:00 AM) Cumulative, with more weight on the last third