An Introduction and Tutorial for Common Lisp
This document provides a small set of resources and references on Common Lisp.
It was originally prepared for
students in the Part-Time MS Program in Computer Science at the Johns Hopkins
University. Most of this document was written 10+ years ago, since
much of my time is now spent doing
Java and Ajax work. Nevertheless,
please send corrections/suggestions to
Marty Hall (firstname.lastname@example.org). The original of this document is at
http://www.apl.jhu.edu/~hall/lisp.html. Also see the
Belorussian version of the tutorial,
translated by Paul Bukhovko and
provided by fatcow.
Note that some of the documents are in PostScript. If your WWW browser cannot
display PostScript, they can still be saved and printed.
Here are some of my personal favorite Lisp, AI Programming, and
general AI texts. I can recommend all
of them from personal experience. Click on the titles to see more
information or to order them on-line.
- Basic Common Lisp Programming
- No AI Slant: Moderately Fast-Paced:
ANSI Common Lisp by Paul Graham. The best introduction
to Common Lisp as a general-purpose programming
language. A bit hard going for inexperienced programmers, however.
- AI Slant:
Lisp by Winston and Horn. The classic AI applications in Lisp text.
- Advanced Common Lisp Programming
- Lisp References
- Scheme (really programming and algorithms)
- Artificial Intelligence (roughly in order of preference)
- Java and Web Programming.
OK, ok, so these don't have anything to do with Lisp. But I
CLOS is the "Common Lisp Object System", a powerful OOP package built
into Common Lisp.
A free Common Lisp for Windows. This is a version of the popular commercial
Allegro Common Lisp for Windows, with some limitations such as
limited heap size, no foreign function support, no compile-file,
no disassembler, and no image saving (save-image).
is still available and files get compiled as they are loaded (you just can't
save the compiled version to disk). Otherwise this is the same version
as their commercial implementation. An excellent choice for
students with Windows machines at home, and includes an interactive
tutorial. This page also allows downloading of a free evaluation copy
of Allegro CL for UNIX. Also see
the Franz Web Site for more info on this offering.
- Another free Common Lisp
for Windows. From
Harlequin, Inc., makers of the UNIX LispWorks
environment, this is a more limited implementation formerly only
for academic use. No compiler.
A limited-time use evaluation copy of Macintosh Common Lisp 4.0. From
Pointers to other free Common Lisps available on the Net for UNIX, VMS,
DOS/Windows, and Macintosh. Extracted from version 1.48 of the
FAQ for comp.lang.lisp. See there for the latest details.
Lecture notes, handouts, and some exercises from Marty Hall's AI
Programming class in the Hopkins part-time MS program in CS.
The Association of Lisp Users (ALU).
Tulane's Interactive Lisp Tutorial. By Eduardo Villamil.
Texas A&M Basic Lisp Tutorial. By Colin Allen and Maneesh Dhagat.
The FAQ (Frequently Asked Questions) list from comp.lang.lisp.
CMU's Archive of Common Lisp Code.
- Lisp Resources Page from the WWW Virtual Library.
- Source Code from Three Popular Common Lisp Texts.
An extensible http server written in Common Lisp. From the
MIT AI Lab.
A commercial ANSI-CL to C translator and Lisp-in-C libraries.
The comp.lang.lisp Usenet newsgroup. You may want to use a newsreader like
nn or gnus instead of a WWW browser if you really subscribe to it.
Collection of job postings for Lisp-related positions. Most of these jobs come from
the Lisp-Jobs mailing list of Mark Kantrowitz (send "help" in the body) or the
comp.lang.lisp Usenet group. This collection is in UNIX mailbox format, so to
peruse you probably want to download it and read it with your favorite mailreader.
It also includes AI-related jobs that don't necessarily mention Lisp if they are in the
greater Baltimore/Washington area. For complete archives of the Lisp-Jobs and AI-Jobs
mailing lists, see
the archives at CMU.
A Brief History of Lisp. (PostScript)
The Evolution of Lisp A Detailed History of Lisp,
from the 1993 ACM History of of Programming
Languages (HOPL-II) conference. (PDF)
Lisp: Good News, Bad News, How to Win Big. From AI Expert. Also
- Hall, Marty and James Mayfield,
"Improving the Performance of AI Software: Payoffs and Pitfalls in Using
Automatic Memoization," Procedings of Sixth International
Symposium on Artificial Intelligence, Monterrey, Mexico, September 1993.
(PostScript). Source code is available
here. See the top of
Memoization.lisp for a quick description of the
main user-level functions.
Paper by Ken Anderson giving details of numeric optimization in Lisp with
comparisons to C. Based around an algorithm known as fannkuch. (PostScript)
- Henry Baker's
outstanding collection of Lisp-related papers. Note that netcom is frequently
overloaded, so it might take several tries to connect.
A survey of garbage collection techniques by Paul Wilson. To appear in
ACM's Computing Surveys. (PostScript)
Garbage Collection FAQ maintained by David Chase of Centerline.
- GC Papers by Hans-J Boehm at Xerox PARC:
The original of this document can be found at
1996-99 Marty Hall