McMaster University
CAS 706

Lectures  Extra material  Languages and compilers  Assignements Presentations


Tuesday 15:30-17:00, and Friday 11:30-13:00 in ITB/222.


  1. Parametrized quicksort
  2. Lambda calculus interpreter
  3. Typed Lambda calculus interpreter
  4. Fun with scripting languages

Textbooks and web materials

Types and Programming Languages Benjamin C. Pierce
Programming Languages: Principles and Paradigms Allen Tucker and Robert Noonan.
There is some very useful material at the following pages: When in the mood to look at weird languages, I definitely recommend In the same vein, some good jokes based on programming languages.

I recently found a nice comparison of the extension benefits of OO vs functional. Clearly lays out the tradeoffs involved. I could also talk about how FP is (mostly) based on initial algebras and OO on co-algebras, but that might not enlighten many amongst you!

For specific languages, I recommend: All the sites above contain executables and lots of documentation.


Dan Zingaro -- Typed lambda calculus and exceptions
Wen Yu -- Normalization and References
Jessie Li -- Overload and OVerriding
Orlin Grigorov -- Inheritance, Subtyping and Prototypes in OO
Xiaolei Cui -- Compiling Functional Languages; separately, Ryan pointed me to a paper by DonS on compiling Haskell, a good read.
Paul Hachmann -- Comonads
Pouya Larjani -- Domain Theory
David Miller -- Compiling dynamically typed languages

Additional resources

The slides from this course on programming languages are also topical.

Googling for "introduction to lambda calculus" and "lambda calculus interpreter" yield a lot of useful resources

Sep 2006