CSC 272
Software II
Principles of Programming Languages
Spring, 2011
This course meets from 12:00-12:50 MWF in the Math/CS Department lab.
Our main textbook
will be
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,
Spring
1996, Spring
1997,
Spring
1998,
Spring
2008, and
Spring
2010.
Software
Scheme
I presume you all know how to get DrRacket.
To use the PLAI language, switch languages to "Use language specified in
source",
then type #lang plai
in the
Definitions pane (in place of the #lang scheme
which should be there automatically) and click the "Run" button.
Now you'll have type-case
and
define-type
available to you, with test
rather than check-expect
for writing test cases.
Haskell
For this course, I recommend using
the
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
Good.
- 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
C#.
- 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
.
Last modified:
Thu Feb 3 15:51:33 EST 2011
Stephen Bloch / sbloch@adelphi.edu