CS 421: Programming Languages and Compilers
Lecture videos for I2CS students

Lectures from Spring 2007
Lectures from Fall 2006
Lectures from Summer 2006

Click here if you have a question or something is unclear during class.
Lecture Schedule for Summer 2007
DateTopicSlides & examplesSupplementary notes
Tue, May 291. Course introductionslides (PDF, 6up)history & overview (PDF, 6up)
Tue, May 292. Introduction to OCamlslides (PDF, 6up), code (intro.ml)SML & OCaml quick feature reference, OCaml manual
Thu, May 313. Recursion patternsslides (PDF, 6up)foldl.com, foldr.com, OCaml List module docs, transcript of terminal session
Thu, May 314. Higher order functionsslides (PDF, 6up)more on reverse, fold & map (PDF)
Mon, June 45. User-defined types slides (PDF, 6up)UDTs extended example (PDF, OCaml code), Option example (PDF, OCaml code),
OCaml manual: Type expressions, Type and exception definitions
Mon, June 46. Overview of type systemsslides (PDF, 6up)"Type Systems" by Luca Cardelli (long—just browse/skim through it)
Tue, June 57. Type derivationsslides (PDF, 6up)notes on linear types, "Linear Types Can Change the World!" by Philip Wadler
Thu, June 78. Type checkingslides (PDF, 6up),
monomorphic type checker (tc.ml)
terminal transcript, incomplete polymorphic type checker, poly-notes.txt
Mon, June 119. Unificationslides (PDF, 6up)
Tue, June 1210. Type inference & Unificationslides (PDF, 6up)examples from class
Thu, June 1411. Regexps, DFAs & NFAsslides (PDF, 6up)Wikipedia article on regular expressions
Thu, June 1412. Converting NFAs to DFAsslides (PDF, 6up)
Thu, June 1413. Lexing & ocamllexslides (PDF, 6up)test.mll, overview of ocamllex, ocamllex tutorial
Mon, June 1814. Derivatives of regular
expressions & DFA minimization
slides (PDF, 6up)"Derivatives of Regular Expressions" by J.A. Brzozowski,
slides on DFA minimization, deriv-re-notes.txt and parsing-notes.txt from class
Tue, June 1915. Grammarsslides (PDF, 6up)
Tue, June 1916. LL Parsingslides (PDF, 6up)examples from class
Thu, June 2117. LR Parsingslides (PDF, 6up)expr.ml, exprlex.mll, exprparse.mly
Mon, June 2518. Writing and Disambiguating Grammarsrpcalc.mly, lexer.mll, main.ml, Makefile, exn.ml, dangling-else.txt, nonstandardparen.txtocamlyacc tutorial, midterm topics
Tue, June 2619. LR item setssee videowiki:LR parser
Tue, July 320. Lambda calculuslectures notes (PDF, LaTeX), outline, summer 2006 slides (PDF, 6up)"A Tutorial Introduction to the Lambda Calculus" by Raul Rojas, wiki:Lambda calculus
Thu, July 521. Transition Semanticsslides (PDF, 6up)
Mon, July 922. Names and Variablesslides (PDF, 6up)
Mon, July 923. Natural Semanticsslides (PDF, 6up)
Tue, July 1024. Lambda Calculus & Imperative Language Interpreters via Natural Semanticseval.ml, eval-imp.ml
Thu, July 1225. Soundness & Termination of the Simply-Typed Lambda Calculusinformal proof sketch: termination of simply-typed lambda expressions (PDF)
Mon, July 1626. Control flow & Continuation Passing Styleslides (PDF, 6up)
Tue, July 1727. CPS transform & code generation, SSAslides (PDF, 6up)
Thu, July 1928. Code generation & optimization with GCCcode exaples
CPS & control flow
Data abstraction
Object-oriented languages
Concurrency