CS 421: Programming Languages and Compilers
Lectures from Fall 2008
Lectures from Spring 2009

Lecture Schedule for Summer 2009
Schedule subject to change as course progresses.
Lecture topics (in italics) for not yet given lectures are preliminary, and may change.
Lecture Videos by Date
Class Date Topic Lecture slides (pdf)
1 June 1 Course Intro and Introduction to OCaml Slides [PDF] [OCaml Code]
2 June 2 OCaml - tuples and lists Slides [PDF]
3 June 4 OCaml - type definitions, abstract syntax Slides [PDF]
4 June 8 Language implementation overview Slides [PDF]
5 June 9 Lexical analysis Slides [PDF]
6 June 11 Regular expressions, Ocamllex Slides [PDF]
7 June 15 Parsing - context-free grammars, recursive descent parsing Slides [PDF] Code [ZIP]
8 June 16 Top-down parsing Slides [PDF] Example answers [TXT]
9 June 18 Bottom-up (shift/reduce) parsing Slides [PDF]
10 June 22 LR parsing - conflict resolution Slides [PDF] LR Theorem [PDF]
11 June 23 Code generation Slides [PDF]
12 June 25 More code generation Slides [PDF]
13 June 29 Garbage collection, runtime systems Slides [PDF]
June 30 Midterm Review Slides [PDF]
July 2 MIDTERM (11:30-12:45, location: 1304 SC)
14 July 6 History of programming languages Slides [PDF]
15 July 7 APL Slides [PDF] APL Reference [PDF]
16 July 9 Functional programming: higher-order functions Slides [PDF]
17 July 13 More higher-order functions Slides [PDF]
18 July 14 Even more higher-order functions Slides [PDF]
19 July 16 Functional programming in OO languages Slides [PDF]
20 July 20 Inference systems; formalizing operational semantics Slides [PDF]
21 July 21 Type semantics Slides [PDF] Examples [PDF]
22 July 23 Operational semantics Slides [PDF] Examples [PDF] Handout [PDF]
23 July 27 Hoare logic for imperative languages Slides [PDF]
24 July 28 More Hoare logic Slides [PDF]
25 July 30 Advanced topics: lazy evaluation, lambda-calculus Slides [PDF]
26 August 3 Advanced topics: functional programming for parallelism Slides [PDF]
August 4 Final Review Slides [PDF]
27 August 6 Advanced topics: ActorNet Slides [PDF]
August 8 FINAL EXAM (1-3pm, location: 1105 SC)
I2CS students: August 7