Dr. Adam Brooks Webber
This page accesses supporting material for the book. The page was updated on 7/24/2007.
A list of errors in the book (ps) (pdf), containing all those known to the author as of September 26, 2003.
Here are PowerPoint slides for lectures, one set for each chapter of the book.
Here is the source code from the book, organized by chapter.
All language systems required by the book are available for free. Platforms include Windows and a variety of Unix-based systems, including Mac OS X.
The implementation of ML used in the book is Standard ML of New Jersey. You can download it from Bell Lab's ML site. A nice self-installing .exe for Windows 9X, NT, 2000 or XP is available there, among other things. It is a 5.17MB download.
There is a nice emacs mode for ML, which you can find on the Bell Lab site. It autoindents your ML code and runs the ML language system as an inferior process. (In past semesters, few of my students made use of this, so we no longer install it on our systems. However, experienced emacs hackers might consider installing it for themselves.)
There are several good ML tutorials available on the Web. A tutorial developed by Stephen Gilmore is called Programming In Standard ML '97: An On-line Tutorial. The text for this one is very well organized. Robert Harper has a very extensive introductory on-line text, Programming in Standard ML, that includes lots of examples. Andrew Cumming of Napier University in Edinburgh has written a tutorial site for ML called A Gentle Introduction to ML. (That link goes to the home site, but there is a list of mirrors.) There are many small tutorial exercises, and if you set things up right you can cut from them and paste into an ML session.
The implementation of Java used in the book is Sun's Software Development Kit (SDK). You can download it from Sun's Java site. The Windows version is a 51MB download.
The classic on-line tutorial for more experienced programmers is Sun's Java Tutorial, which is also available in book form. This is a very thorough tutorial with many examples.
I wrote a Java tutorial called The Java Trainer at Western Illinois University. It delivers entirely Web-based, on-line puzzles integrated with the text. Unfortunately it is meant to teach rudimentary programming to people who have never programmed before, so it is way too elementary to supplement the book. Still, students may find some of the puzzles challenging.
The implementation of Prolog used in the book is SWI-Prolog from the University of Amsterdam. You can download it from the SWI-Prolog web site.
A useful Web resource is Paul Brna's online Prolog textbook. For general Prolog information and lots of source code, check out the Prolog Repository at CMU.
There are free implementations of all three languages available for Macintosh. For ML, the latest working version from Bell Labs provides Mac OS X support, and there is also the Moscow ML system. For Java, Mac OS X includes tools to edit, compile and debug Java applications, integrated with the standard Xcode developer tools. Without Xcode, you can still use the java and javac commands from the shell. For Prolog, the SWI-Prolog system is available for Mac OS X (you'll need X11 to run it), and there is also Mike Brady's Open Prolog. There are also several free Prolog interpreters written in Java, which should run on the Mac; see this catalog of Prolog systems.
Under Mac OS X, we have tried only SML-NJ, command-line Java, and SWI-Prolog. Please email the author if you have advice about other systems for OS X.
Don't miss the on-line collection of programs to print the lyrics of that heart-warming classic song, "99 Bottles of Beer on the Wall". Over 600 different programming languages are represented.
You can email me here with comments and questions.