Research publications can be found at the web pages for
the programming languages group
and the educational technology group
- Programming Languages: An Interpreter-Based Approach,
This book presents a variety of languages - Lisp, APL, Scheme, SASL, CLU,
Smalltalk, and Prolog - in simplified form with Lisp-like syntax.
I occasionally am asked whether I intend to update this book.
In fact, Norman Ramsey has expanded the book into a new edition,
which should be published fairly soon.
In the meantime, he has provided the pdf to some people;
you can write to him at
There is quite a bit of code in this book, including the interpreters
(written in Pascal in the book, but since ported to C as well).
You can obtain it in various formats. The compressed tar files
contain the errata, Pascal or C code for the interpreters, and all the
code given in the various languages in the book.
- Errata (ASCII file)
- distr.tar.Z. All the items
mentioned above, with the Pascal versions of the interpreters,
as a Unix-compressed tar file. (177Kb)
- distr.tar.gz. Same items as
distr.tar.Z, but as a gzipped tar file. (111Kb)
- C-distr.tar.Z. Same items as
in distr.tar.Z, but interpreters are written in C.
Only the interpreters for chapters 1 through 8 have been ported
to C; the Pascal distribution includes interpreters discussed
in Chapter 10 as well. (131Kb)
- C-distr.tar.gz. Same items as
C-distr.tar.Z, but as a gzipped tar file. (69Kb)
In addition, Tim Budd rewrote the interpreters in C++ some time
ago; the code it interesting in itself (especially the way he
His ftp page doesn't seem to be working, but the code
is available from the
CMU AI Repository.
- Introduction to Programming with
with Richard Gaylord and Paul Wellin,
Cambridge University Press, 2005.
A C++ Introduction to Computer Science,
with Ed Reingold, McGraw-Hill, 1996.
An Introduction to Computer Science using Java, 2nd Ed.
with Denny Mickunas and Ed Reingold,
(To get the Java code associated with this book,
click here. Then click on "Library and code" in the upper left.)