Principles of Programming Languages
This course meets from 12:00-12:50 MWF in the Math/CS Department lab.
Our main textbook
Shriram Krishnamurthi's Programming
Languages: Application and Interpretation, which is available on the
Web for free.
My office hours are
MW 2:30-4:00 and Th 9:00-1:00.
I also taught this course, in various guises,
in Spring 1995,
I presume you all know how to get DrRacket.
To use the PLAI language, switch languages to "Use language specified in
#lang plai in the
Definitions pane (in place of the
which should be there automatically) and click the "Run" button.
Now you'll have
define-type available to you, with
check-expect for writing test cases.
For this course, I recommend using
Haskell Platform, which is available for Windows, Mac, and Linux.
This includes a Haskell compiler as well as
ghci, an interactive platform.
Other Suggested Reading
- My favorite tutorial on Haskell is
Learn You a Haskell for Great
- Yet Another
Language Geek, a blog about .NET programming in a functional (as
opposed to imperative) style (the Rx library for C#, for example,
feels a lot like DrScheme's FrTime language, in which variables can
have time-varying values).
EDIT: The above may have
been superseded by the development of the F# Language, a functional cousin of
- I recommend reading some of Paul Graham's essays. He covers
lots of different topics, including high-tech entrepreneurship, but
one of his favorites is programming language design. See in particular
Thu Feb 3 15:51:33 EST 2011
Stephen Bloch / email@example.com