CS 421: Programming Languages and Compilers
Lecture slides from Fall 2022
Video of class lectures (Channel CS 421 - Spring 2023)
Lecture Schedule for Spring 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 
1 Jan 18 Course Introduction slides (PPT) (full sized PDF) (6 up PDF)
code (OCaml CODE) (SHELL)
Lect 1 MP1: OCaml: Basic Ocaml
2 Jan 20 Ocaml Environments, Functions, Closures slides (PPT) (full sized PDF) (6 up PDF) Lect 2 WA1: Evaluation and Evironments
 Week 2 
3 Jan 23 Environments, Closures, Higher-order Functions slides (PPT) (full sized PDF) (6 up PDF) Lect 3
4 Jan 25 Tuples Patterns, Closures, Basic Evaluation in OCaml slides (PPT) (full sized PDF) (6 up PDF) Lect 4 MP2: Pattern Matching and Recursion MP1
5 Jan 27 Recursive Functions, Lists, Recursion over Lists slides (PPT) (full sized PDF) (6 up PDF) Lect 5 WA2: Order of Evaluation WA1
 Week 3 
6 Jan 30 Quiz 1 - Covers MP1
6.5 Jan 30 Forms of List Recursion slides continued from Lecture 5 Lect 6
7 Feb 1 Forward Recursion, fold_right slides (PPT) (full sized PDF) (6 up PDF) Lect 7 MP3: Patterns of Recursion, Higher-Order Functions MP2
8 Feb 3 Tail Recursion, fold_left slides (PPT) (full sized PDF) (6 up PDF) Lect 8 WA3XC: Evaluating the Application of a Function WA2
 Week 4 
9 Feb 6 Continuations and Continutation Passing Style slides (PPT) (full sized PDF), (6 up PDF) Lect 9
10 Feb 8 Continuation Passing Style for Recursion and Higher Order Functions slides (PPT) (full sized PDF), (6 up PDF) Lect 10 MP4: Higher-Order Functions and Continuation-Passing Style MP3
11 Feb 10 Continuation Passing Style (CPS) Transformation, Intro to Algebriac Datatypes, Pattern Matching slides (PPT) (full sized PDF), (6 up PDF) Lect 11 WA4: CSP Transformation; Working with Mathematical Specifications
 Week 5 
Feb 11 - Feb 14 MIDTERM 1 In the CBTF - You must register for a date Covers through Lecture 8
12 Feb 13 No Class: MIDTERM 1 Covers MP1, WA1, MP2, WA2, MP3
13 Feb 15 User Defined Types in Ocaml, Data Constructors and Pattern Matching slides (PPT) (full sized PDF), (6 up PDF) Lect 13 MP5: Working with ADTs: Implementing CPS Transformation
14 Feb 17 Recursive Data Types in OCaml slides (PPT) (full sized PDF), (6 up PDF) Lect 14 WA4 was released on Feb 10
 Week 6 
15 Feb 20 Functions over Recursive Data Types in OCaml, Mutual Recursive Type, Nested Recursive Types slides (PPT) (full sized PDF) (6 up PDF) Lect 15
16 Feb 22 The Roles of Types, Features of Type Systems, Specifying Monomorphic Type System slides (PPT) (full sized PDF) (6 up PDF) Lect 16 MP5 was relased on Feb 15 MP4
17 Feb 24 Monomorphic Type System slides (PPT) (full sized PDF) (6 up PDF) Lect 17 WA5: Polymorphic Type Derivation WA4
 Week 7 
18 Feb 27 Quiz 2: MP 4 - Moved because of tornado warning
18.5 Feb 27 Monomorphic Type Derivation Example slides (PPT) (full sized PDF) (6 up PDF) Lect 18
19 Mar 1 Quiz 2: MP 4 MP6: A Unification-Based Type Inferencer MP5
20 Mar 3 Polymorphic Type System slides (PPT) (full sized PDF) (6 up PDF)
slides for extra lecture (PPT) (full sized PDF) (6 up PDF)
Lect 20 WA6: Incremental Unification Algorithm WA5 - Due Mar 5
 Week 8 
21 Mar 6 Type Inference slides (PPT) (full sized PDF) (6 up PDF) Lect 21
22 Mar 8 Unification Definition slides (PPT) (full sized PDF) (6 up PDF) Lect 22 MP7: Unification Algorithm
23 Mar 10 Unification Example slides (PPT) (full sized PDF) (6 up PDF) Lect 23 WA7: Regular Expressions MP6
 Week of Spring Break 
Mar 13 Spring Break
Mar 15 Spring Break
Mar 17 Spring Break
 Week 9 
24 Mar 20 Language Translation, Syntax, Regular Expressions slides (PPT) (full sized PDF) (6 Up PDF) Lect 24 WA6
25 Mar 22 Right Regular Grammars, ocamllex Regular Expressions slides (PPT) (full sized PDF) (6 Up PDF) Lect 25 MP8: A Lexer for PicoML MP7
26 Mar 24 OCamllex, BNF Grammars, Parse Trees slides (PPT) (full sized PDF) (6 Up PDF) Lect 26 WA8: Parse Trees
 Week 10 
Mar 25 - Mar 28 MIDTERM 2 Covers Lectures 9 - 21
27 Mar 27 No Class: MIDTERM 2 Covers MP4, WA4, MP5, WA5, MP6
28 Mar 29 OCamllex example, BNF Grammars slides (PPT) (full sized PDF) (6 up PDF)
code (expr.ml) (exprlex.mll) (exprparse.mly)
Lect 28
29 Mar 31 Parsing, Parse Trees slides (PPT) (full sized PDF) (6 up PDF)--> Lect 29 WA8 was released on Mar 24 WA7
 Week 11 
30 Apr 3 Quiz 3 - Covers MP7
30.5 Apr 3 Disambiguating Grammars (cont) slides (PPT) (full sized PDF) (6 Up PDF) Lect 30 MP9: A Parser for PicoML
31 Apr 5 Ocamlyacc slides (PPT) (full sized PDF) (6 Up PDF) Lect 31 MP9 was released on Apr 3 MP8
32 Apr 7 LR Parsing, Action & Goto Tables and Ambiguity slides (PPT) (full sized PDF) (6 Up PDF) Lect 32 WA9: Natural and Transition Semantics WA8
 Week 12 
33 Apr 10 Disambiguating Grammars slides (PPT) (full sized PDF) (6 Up PDF) Lect 33
34 Apr 12 Intro to Dynamic Semantics, Natural Sematics slides (PPT) (full sized PDF) (6 Up PDF) Lect 34 MP10: An Evaluator for PicoML
35 Apr 14 Transition Semantics slides (PPT) (full sized PDF) (6 Up PDF) Lect 35 WA10: Lambda Calculus
 Week 13 
Apr 15 - Apr 18 MIDTERM 3 Covers Lecture 21 - 32
36 Apr 17 No Class: MIDTERM 3 Covers WA6, MP7, WA7, MP8, WA8
37 Apr 19 Transition Semantics Cont., Intro to Lambda Calculus slides (PPT) (full sized PDF) (6 Up PDF) Lect 37 MP11: A Transition Semantics Evaluator for CPS MP9
38 Apr 21 The Lambda Calculus - alpha equivalence and beta conversion slides (PPT) (full sized PDF) (6 Up PDF) Lect 38 WA10 was released on Apr 12 WA9
 Week 14 
39 Apr 24 Quiz 4 - Covers MP9
39.5 Apr 24 Lambda Calculus Evaluation Strategies (Eager and Lazy) slides Continued from Lecture 38 Lect 39
40 Apr 26 Intro to Axiomatic Semantics slides: (PPT) (full sized PDF) (6 Up PDF)
Lect 40 MP11 was released on Apr 19 MP10
41 Apr 28 Intro to Axiomatic Semantics (cont) slides: (PPT) (full sized PDF) (6 Up PDF)
extra slides: (PPT) (full sized PDF) (6 Up PDF)
Lect 41 WA11: Hoare Logic WA10
 Week 15 
42 May 1 Axiomatic Semantics, aka Hoare Logic slides continued from Lect 41 Lect 42 MP11
43 May 3 Hoare Logic Examples slides (PPT) (full sized PDF) (6 Up PDF) Lect 43 WA11, WA3XC
 Finals Week 
May 12 FINAL (1:30pm - 4:40pm)
Alert: There was an error in this earlier.
Cummulative, with more weight on the last fourth