CS 421: Programming Languages and Compilers
Lectures from Fall 2007
Lectures from Summer 2007
Lectures from Spring 2007

Lecture Schedule for Spring 2008
Schedule subject to change as course progresses.
Lecture slides for not yet given lectures are preliminary, and may change.
Class Date Topic Lecture slides (pdf) Hwk due
1 1-15 Introduction to course; intro to OCaml class1 - 1-15.pdf
2 1-17 Ocaml - lists class2 - 1-17.pdf (and supplementary notes) Hwk 1 (Use OCaml)
3 1-22 OCaml - type definitions, abstract syntax class3 - 1-22.pdf Hwk 2 (List processing)
4 1-24 Language implementation overview class4 - 1-24.pdf
5 1-29 Lexical analysis class5 - 1-29.pdf Hwk 3 (Tree processing, ASTs)
6 1-31 Regular expressions, Ocamllex class6 - 1-31.pdf
7 2-5 Parsing - context-free grammars, recursive descent parsing class7 - 2-5.pdf Hwk 4 (ocamllex)
8 2-7 Top-down parsing class8 - 2-7.pdf (and supplementary notes from Prof. Kamin and from Chris Osborn)
9 2-12 Bottom-up (shift/reduce) parsing class9 - 2-12.pdf (and supplementary notes from Prof. Kamin) Hwk 5 (Simple recursive-descent parser)
10 2-14 LR parsing - conflict resolution, ambiguity class10 - 2-14.pdf
11 2-19 Code generation class11 - 2-19.pdf Hwk 6 (ocamlyacc)
12 2-21 Code generation and garbage collection class12 - 2-21.pdf
13 2-26 Review for midterm (optional) Hwk 7 (Code gen)
2-27 Midterm in evening
14 2-28 History of programming languages class14 - 2-28.pdf
15 3-4 APL class15 - 3-4.pdf (and an APL reference)
16 3-6 Object-oriented languages - history and implementation class16 - 3-6.pdf Hwk 8 (APL)
17 3-11 Functional programming - concepts, history, higher-order functions class17 - 3-11.pdf
18 3-13 More F.P., O-o programming in OCaml class18 - 3-13.pdf (ignore page 8)
3-19, 3-21 Spring break
19 3-25 F.P. implementation class19 - 3-25.pdf (and supplementary notes from Prof. Kamin)
20 3-27 Lazy evaluation, lambda calculus class20 - 3-27.pdf Hwk 9 (Higher-order functions)
21 4-1 Functional programming in object-oriented languages class 21 Functional Prog in o-o Langs.pdf
22 4-3 Operational semantics of OCaml class22 - 4-3.pdf
23 4-8 Operational semantics of imperative languages class23 - 4-8.pdf
24 4-10 Type systems and their formal definition class24 - 4-10.pdf Hwk 10
25 4-15 Proving properties of recursive functions class25 - 4-15.pdf
26 4-17 Proving properties of recursive functions (cont.) class26 - 4-17.pdf Hwk 11
27 4-22 Hoare logic for imperative languages class27 - 4-22.pdf
28 4-24 (cont.) class 28 - 4-24.pdf
or class 28 4-24.ppt (animated powerpoint)
Hwk 12
29 4-29 Wrap-up and review, preview of follow-up courses class 29 - 4-29.pdf
and solutions (I've had some problems with printing the solutions, so here they are in Word format.)