CS 421: Programming Languages and Compilers
Lectures from Fall 2019
Video of classlectures (Channel CS 421 - FALL 2021)

Lecture Schedule for Fall 2021
-->
Schedule subject to change as course progresses.
Lecture slides for not yet given lectures are preliminary, and may change.
Day Date Topic Slides and Code Video Link
1Aug 24 Course Introduction, Introduction to Ocaml, Environments slides (PPT) (full sized PDF) (6 up PDF)

code (OCaml CODE) (SHELL)

Introduction
2Aug 26 Ocaml Boolean, Tuples, Functions, Closures slides continued from Lecture 2 Environments
 
3Aug 31 Compound Data Types, Pattern Matching, Closures, and Higher-order Functions slides (PPT) (full sized PDF) (6 up PDF) Compound Data Types and Pattern Matching
4Sep 2 Evaluating Expressions and Applications slides continued from Lecture 3 Pattern Matching, Funtions, Closures, Currying, Evalution
 
5Sep 7 Evaluation, Lists slides (PPT) (full sized PDF) (6 up PDF) Evaluation in OCaml, Ocaml Lists
6Sep 9 List Pattern Matching, Recursion over Lists, Structural Recursion, Forms of Recursion and Higher-Order Recursive Operators slides continued from Lecture 5 List Pattern Matching, Recursion over Lists, Structural Recursion, fold_right
 
7Sep 14 Patterns of Recursion, Tail Recursion, Higher Order Functions slides (PPT) (full sized PDF), (6 up PDF) Patterns of Recursion, Tail Recursion, Higher Order Functions
8Sep 16 Tail Recursion, fold_left, Continuations, Continuation Passing Style slides continued from Lecture 7 Tail Recursion, fold_left, Continuations
 
9Sep 21 Continuation Passing Style, Continuation Passing Style (CPS) Transformation slides (PPT) (full sized PDF), (6 up PDF)
code (OCAML TEXT)
Continuation Passing Style (CSP) and CPS Transformation
10Sep 23 Recursive Data Types in OCaml slides continued from Lecture 9 OCaml Algebraic Datatypes
 
11Sep 28 User-defined Recursive Data Types slides (PPT) (full sized PDF) (6 up PDF) User-defined Recursive Data Types
12Sep 30 MIDTERM 1 Covers through Lecture 10
 
13Oct 5 Types, Type Systems and Type Inference slides (PPT) (full sized PDF) (6 up PDF) Types and Type Systems
14Oct 7 Monomorhic and Polymorphic Type Derivation slides continued from Lecture 13 Monomorphic Type System and Type Deriviations
 
15Oct 12 Type Inference slides (PPT) (full sized PDF) (6 up PDF) Polymorphic Type System and Type Deriviations
16Oct 14 Unification-based Type Inference slides continued from Lecture 15 Type Inference - Example
 
17Oct 19 Type Inference, Unification Problems Slides continued from Oct 12 and Oct 14 Type Inference - Algorithm
18Oct 21 Unification Algorithm slides continued from Lectures 15, 16 and 17 Unification Algorithm
 
19Oct 26 Regular Expressions, Right Regular Grammars slides (PPT) (Full PDF) (Six Up PDF) Regular Expressions and Right Regular Grammars
20Oct 28 Ocamlex, Intro to BNF grammars slides continued from Lecture 19
code example.mll
Ocamllex, Intro to BNF Grammars
 
21Nov 2 Parse Trees, Ambiguous Grammars slides (PPT) (Full PDF) (Six Up PDF) Parse Trees, Ambiguous Grammars
22Nov 4 MIDTERM 2 Covers Lecture 11 through parsing in Lecture 20
 
23Nov 9 Disambiguating Grammars, LR Parsing, Action and Goto Tables slides continued from Lecture 21 Amgiuous grammars and disambiguating them
24Nov 11 Ocamlyacc slides continued from Lecture 21
Using Ocamlyacc to create a parser
 
25Nov 16 Dynamic Semantics - Natural Semantics slides (PPT) (Full PDF) (Six Up PDF) Natural Semantics
26Nov 18 Dynamic Semantics - Transition Semantics slides continued from Lecture 25 Transition Semantics
 
Nov 23 Thanksgiving
Nov 25 Thanksgiving
 
27Nov 30 Introductionto the Lambda Calculus slides (PPT) (Full PDF) (Six Up PDF) Introduction to the Lambda Calculations
Example of how to disambiguate function expressions and application
28Dec 2 Lambda Calculus - Beta Reduction; Intro to Axiomatic Semantics slides (PPT) (Full PDF) (Six Up PDF) Beta reduction, intro to Hoare Logic
 
29Dec 9 Intro to Axiomatic Semantics(cont) slides continued from Lecture 28 Hoare Logic Rules
 
 
Dec 14 FINAL (8:00am-11:00am (CDT) for online section, 1:30pm - 4:30pm for in-class section) Cummulative, with more weight on the last third