CS 421: Programming Languages and Compilers
Lecture slides from Fall 2021
Video of class lectures (Channel CS 421 - FALL 2021)
Lecture Schedule for Fall 2022
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
1Aug 23 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 25 Ocaml Boolean, Tuples, Functions, Closures slides continued from Lecture 2 Lect 2 WA1: Evaluation and Evironments
 
3Aug 30 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 1 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
 
5Sep 6 Lists, List Pattern Matching, Recursion over Lists, Structural Recursion slides continued from Lecture 4 Lect 5 MP3: Patterns of Recursion, Higher-order Functions MP2
6Sep 8 Forms of Recursion and Higher-Order Recursive Operators slides continued from Lectures 4 and 5 Lect 6 WA3XC: Order of Evaluation WA2
 
7Sep 13 Continuations and Continutation Passing Style slides (PPT) (full sized PDF), (6 up PDF) Lect 7 MP4: Higher-Order Functions and Continuation-Passing Style
8Sep 15 Continuation Passing Style (CPS) Transformation slides continued from Lecture 7 Lect 8 WA4XC: CSP Transformation; Working with Mathematical Specifications MP3
 
9Sep 20 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 (NOT covered on Midterm 1) MP4
10Sep 22 Recursive Data Types in OCaml slides continued from Lecture 9 Lect 10
 
11Sep 27 Types and Type Systems slides (PPT) (full sized PDF) (6 up PDF) Lect 11
12Sep 29 MIDTERM 1 Covers through Lecture 8
 
13Oct 4 Type Inference slides continued from Lecture 11 Lect 13 MP6: A Unification-Based Type Inferencer MP5
14Oct 6 Monomorhic and Polymorphic Type Derivation slides (PPT) (full sized PDF) (6 up PDF) Lect 14 WA5: Polymorphic Type Derivation
 
15Oct 11 Type Inference slides (PPT) (full sized PDF) (6 up PDF) Lect 15 MP7: Unification Algorithm
16Oct 13 Unification slides continued from Lecture 15 Lect 16 WA6: Incremental Unification Algorithm WA5, MP6
 
17Oct 18 Regular Expressions, OCamllex slides (PPT) (Full PDF) (Six Up PDF) Lect 17 MP8: A Lexer for PicoML
WA7: Regular Expressions
MP7
18Oct 20 OCamllex, BNF Grammars, Parse Trees slides (cont) Lect 18 WA8: Parse Trees WA6
 
19Oct 25 Parsing, Ambiguous Grammars slides (PPT) (PDF)(full sized PDF) (6 up PDF)
code (expr.ml) (exprlex.mll) (exprparse.mly)
Lect 19 MP9: A Parser for PicoML MP8
20Oct 27 Ambiguous Grammars, Ocamlyacc slides (cont) Lect 20 WA7
 
21Nov 1 Disambiguating Grammars slides (PPT) (Full PDF) (Six Up PDF) Lect 21 MP10: An Evaluator for PicoML
22Nov 3 LR Parsing, Action and Goto Tables slides continued from last time Lect 22 WA9: Natural and Transition Semantics WA8
 
Nov 8 Election Day (no class)
23Nov 10 MIDTERM 2 Covers Lecture 9 through parsing theory in Lecture 20
 
24Nov 15 Natural Semantics slides (PPT) (Full PDF) (Six Up PDF) Lect 24 MP11: A Transition Semantics Evaluator for CPS MP9
25Nov 17 Transition Semantics slides continued from last time Lect 25 WA9
 
Nov 22 Thanksgiving
Nov 24 Thanksgiving
 
26Nov 29 Lambda Calculus - Evaluation slides (PPT) (Full PDF) (Six Up PDF) Lect 26 WA10:Lambda Calculus WA11: Hoare Logic MP10
27Dec 1 Intro to Axiomatic Semantics slides: (PPT) (Full PDF) (Six Up PDF)
extra slides: (PPT) (Full PDF) (Six Up PDF)
Lect 27
 
28Dec 6 Hoare Logic (cont) Lect 28 WA10, MP11
 
30Dec 7 Last day of classes WA11
 
Dec 13 FINAL (7:00pm - 10:00pm) Cummulative, with more weight on the last third