CSC 272 Software II

Principles of Programming Languages
Spring, 2010

This course meets from 10:00-10:50 MWF in the Gallagher lab.
Our main textbook
will be
Shriram Krishnamurthi's Programming
Languages: Application and Interpretation, which is available on the
Web for free.
In addition, we'll be doing some work based on
Sebesta's Concepts of Programming Languages, of which I've put
the 9th edition on reserve in the Library.

Announcement 27 Jan:
If you're using the plai library but prefer
check-expect and check-within over
test, take a look at this
file to see how to do it.

Software

Scheme

I presume you all know how to get DrScheme.
To use the PLAI language, switch languages to "Module",
then type (require (planet plai/plai)) in the
Definitions pane (just after the #lang scheme
which should be there automatically) and click the "Run" button.
It will spend a few minutes downloading and installing things
the first time.
After this, you have two choices for writing programs:

you can use "Module" language, with the line
(require (planet plai/plai)) as above, and write
your program after that. Now that it's installed, it'll take
a fraction of a second rather than several minutes.

you can use the "Choose Language" menu item, select
"Programming Languages Interpretation and Application" (which
wasn't there a minute ago), and choose "PLAI Scheme" from the
submenu.

In either case, you'll have type-case and
define-type available to you, with test
rather than check-expect for writing test cases.

Haskell

If you're running Windows, I recommend downloading Helium,
which matches the descriptions in the textbook. (You can also
download the source code for Helium, but it's written in Haskell
so you'll need to install another Haskell compiler first, and the
Helium people say it's a pain to compile under Windows.)

Another option for Windows is to download
the
Haskell Platform. This includes a Haskell compiler as well as
ghci, an interactive platform similar to Helium but
more closely matching the description in
this tutorial.

Other Suggested Reading

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)

You are visitor number
to this page since Jan. 13, 1997.
Last modified:
Thursday, 04-Feb-2010 11:20:27 EST
Stephen Bloch / sbloch@adelphi.edu