McMaster University
CAS 706

Lectures  Extra material  Languages and compilers  Assignements Presentations

Lectures

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

Assignments

  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.

Presentations

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