Some Lectures on Programming Languages

2009 Lectures Relevant Readings
Algol Family and Introduction to Haskell (pdf) (Haskell Code) A History of Haskell: Being Lazy with Class
Types and Type Inference (pdf)
Type Classes (pdf) (Haskell Code) How to Make Ad Hoc Polymorphism Less Ad Hoc
The IO Monad (pdf) (Haskell Code) Tackling the Awkward Squad
Software Transactional Memory (pdf) (Haskell Code) Beautiful Concurrency
Parallelism (pdf) A Tutorial on Parallel and Concurrent Programming in Haskell
2008 Lectures Relevant Readings
Algol Family and Introduction to Haskell (pdf) (Haskell Code) A History of Haskell: Being Lazy with Class
Types and Type Inference (pdf)
Type Classes (pdf) (Haskell Code) How to Make Ad Hoc Polymorphism Less Ad Hoc
The IO Monad (pdf) (Haskell Code) Tackling the Awkward Squad
Monads (pdf) (Haskell Code) Monads for Functional Programming
Software Transactional Memory (pdf) (pptx) Beautiful Concurrency
2005 Lectures Relevant Readings
Scripting Languages (pdf)
Domain-Specific Languages (pdf)
Self (pdf) Self: The Power of Simplicity and Self
Interoperability (pdf)
 
These lectures were given in cs242 (Courseware Site) at Stanford University during terms in which I co-taught the class with John Mitchell.