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
.