CS 421: Programming Languages and Compilers
Lecture slides from Fall 2024
Videos of class lectures (Channel CS 421 - FALL 2025)
Lecture Schedule for Fall 2025
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 26 Course Introduction, Introduction to Ocaml, Environments slides (PPT) (full sized PDF) (6 up PDF)

code (OCaml CODE) (SHELL)

Lect 1 MP1: OCaml: Basic Ocaml
2Aug 28 Ocaml Boolean, Tuples, Functions, Closures slides continued from Lecture 1 Lect 2 WA1: Evaluation and Evironments
Week 2  
3Sep 2 Closures and Evaluation of Function Application, Order of Evaluation in OCaml slides (PPT) (full sized PDF) (6 up PDF) Lect 3 MP2: Pattern Matching and Recursion MP1
4Sep 4 Higher-Order Functions, Pattern Matching and Recursion over Lists slides (PPT) (full sized PDF) (6 up PDF) Lect 4 WA2: Evaluating the Application of a Function WA1
Week 3  
5Sep 9 Lists, List Pattern Matching, Recursion over Lists, Structural Recursion slides continued from Lecture 4 Lect 5 MP3: Patterns of Recursion, Higher-order Functions
3Sep 11
Quiz 1 on MP2
MP2
6Sep 11 Forms of Recursion and Higher-Order Recursive Operators slides continued from Lectures 4 and 5 Lect 6 WA3XC: Order of Evaluation WA2
Week 4  
7Sep 16 Continuations and Continutation Passing Style slides (PPT) (full sized PDF), (6 up PDF) Lect 7 MP4: Higher-Order Functions and Continuation-Passing Style
8Sep 18 Continuation Passing Style (CPS) Transformation slides continued from Lecture 7 Lect 8 WA4: CSP Transformation; Working with Mathematical Specifications
Week 5  
9Sep 23 User Defined Types in Ocaml, Data Constructors and Pattern Matching slides (PPT) (full sized PDF), (6 up PDF) Lect 9 MP5: Working with ADTs: Implementing CPS Transformation MP3
10Sep 25 Recursive Data Types in OCaml slides continued from Lecture 9 Lect 10 WA4 was given 9/18 WA3XC (full cr)
9/25-9/27
Midterm 1, CBTF
Covers through Leture 7
Week 6  
13Sep 30
Quiz 2 on MP5
MP5
11Sep 30 Types and Type Systems slides (PPT) (full sized PDF) (6 up PDF) Lect 11
12Oct 2 Type Derivation slides continued from Lecture 11 Lect 12 WA5: Polymorphic Type Derivation WA4
Week 7  
13Oct 7 Monomorphic and Polymorphic Type Derivation slides (PPT) (full sized PDF) (6 up PDF) Lect 13 MP6: A Unification-Based Type Inferencer MP5
14Oct 9 Polymorphic Type Derivation slides (PPT) (full sized PDF) (6 up PDF) Lect 14 WA6: Incremental Unification Algorithm WA5
Week 8  
15Oct 14 Type Inference slides continued from Lecture 14 Lect 15 MP7: Unification Algorithm
16Oct 16 Day Off for MT2
10/16-10/18
Midterm 2, CBTF
Covers Lecture 8 - 14
Week 9  
17Oct 21 Unification slides(PPT) (Full PDF) (Six Up PDF) Lect 17 WA7: Regular Expressions MP6
18Oct 23 Regular Expressions, Right Regular Grammars, OCamllex slides continued Lect 18 MP8: A Lexer for PicoML
WA6
Week 10  
7Oct 28
Quiz 3 on MP7
MP7
19Oct 28 Ocamllex cont, BNF Grammars, Parsing slides (PPT) (PDF)(full sized PDF) (6 up PDF)
code (expr.ml) (exprlex.mll) (exprparse.mly)
Lect 19 MP8 was given 10/23
20Oct 30 Parse Trees, Ambiguous Grammars, Disambiguating Grammars Part 1, Ocamlyacc slides (cont) Lect 20 WA8: Parse Trees WA7
Week 11  
21Nov 4 LR Parsing, Action and Goto Tables (PPT) (Full PDF) (Six Up PDF) Lect 21 MP9: A Parser for PicoML MP8
22Nov 6 Disambiguating Grammars, Part 2 slides (Full PDF) Lect 22 WA9: Natural and Transition Semantics WA8
Week 12  
23Nov 11 Natural Semantics slides (PPT) (Full PDF) (Six Up PDF) Lect 23 MP10: An Evaluator for PicoML MP9
24Nov 13 Day off for MT3
11/13-11/15
Midterm 3, CBTF
Covers Lecture 15-22
Week 13  
25Nov 18 Transition Semantics slides continued from Lecture 23 Lect 25 MP11: A Transition Semantics Evaluator for CPS
26Nov 20 Intro to Lambda Calculus slides (PPT) (Full PDF) (Six Up PDF) Lect 26 WA10:Lambda Calculus WA9
Week of Fall Break  
Nov 25 Thanksgiving
Nov 27 Thanksgiving
Week 14  
27Dec 2 Lambda Calculus - Evaluation slides (PPT) (Full PDF) (Six Up PDF) Lect 27 WA11: Hoare Logic MP10
28Dec 4 Intro to Axiomatic Semantics slides: (PPT) (Full PDF) (Six Up PDF)
extra slides: (PPT) (Full PDF) (Six Up PDF)
Lect 28 WA10
Week 15  
29Dec 9 Hoare Logic (cont) Lect 29 MP11
End of Classes  
Dec 10 Last day of classes WA11, WA3XC (late, max 80%)
Finals Week  
Dec 16 FINAL (8:00am - 11:00am) Cummulative, with more weight on the last third