CS 421: Programming Languages and Compilers
Lecture slides from Fall 2023
Video of class lectures (Channel CS 421 - SPRING 2024)
Lecture Schedule for Spring 2024
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  
1Jan 16 Course Introduction, Introduction to Ocaml, Environments slides (PPT) (full sized PDF) (6 up PDF)

code (OCaml CODE) (SHELL)

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