Chapter 33 - Where to Go Next

I hope that this book has whetted your appetite for Lisp. If so, you'll want to explore further; this chapter provides pointers to other sources of information and products.

Suggestions for further reading

The Art of the Metaobject Protocol, Kiczales et al, MIT Press, 1991, ISBN 0-262-61074-4
This is the definitive text on the metaobject protocol, referred to in Lisp circles as "AMOP." This is not light reading; save it for when you feel quite confident in your Lisp abilities.
ANSI Common Lisp, Graham, 1996, Prentice-Hall, ISBN 0-13-370875-6
This is a good refresher for an experienced Lisp programmer, as well as being an excellent second text for the beginner. (I think it's a bit too terse to use as a first text for a beginner, but you may want to look at it and see whether you think it's approachable.)
On Lisp: Advanced Techniques for Common Lisp, Graham, Prentice Hall, 1994, ISBN 0-13-030552-9
This has become the canonical reference for macro techniques.
Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS, Keene, 1989, Addison-Wesley, ISBN 0-201-17589-4
Keene's book is quite simply the book to read when you want to understand CLOS. It's short, and it covers all of the essentials. Its best feature is its profuse application of real-world examples.
Understanding CLOS: The Common Lisp Object System, Lawless & Miller, 1991, Digital Press, ISBN 1-55558-064-5
Lawless and Miller's book covers more of CLOS than Keene's book, but the treatment is closer to a reference than a tutorial.
Common Lisp: The Language, 2nd Ed., Steele, 1990, Digital Press, ISBN 1-55558-041-6
Dubbed "CLtL2," this was an interim interpretation of the work of the ANSI standardization committee. It has no standing as part of the standards process, but was used by many Lisp vendors to anticipate the final outcome of the committee's work. Some Lisp systems still implement portions of both the CLtL2 description and the ANSI standard.
Garbage Collection: Algorithms for Automatic Dynamic Memory Management, Jones et al, 1996, Wiley, ISBN 0-471-94184-4
This is an excellent reference covering all aspects of dynamic storage allocation techniques.
Object-Oriented Common Lisp, Slade, 1998, Prentice-Hall, ISBN 0-13-605940-6
Slade's book is probably the best book available on actually using a Common Lisp environment for something other than AI programming. I think it's suitable for a beginner, but should probably be supplemented by another title that provides better insight into the Lisp language.
Common LISPcraft, Wilensky, 1986, W.W. Norton & Co., ISBN 0-393-95544-3
When I was first learning Common Lisp, I found Wilensky's book the most helpful at exposing some of Lisp's unique concepts, such as closures. This book is easy to read (without being patronizing) and includes a lot of very clear examples. There's also a brief Common Lisp reference in the appendix. I still recommend this as a first book for beginners.

Historical References

Cooperating Sequential Processes, Dijkstra, pp. 43-112 in Programming Languages, Genuys (ed.), Academic Press, 1968.
Dijkstra described the techniques used for process coordination. The dining philosophers problem is one of Dijkstra's examples of process coordination when resources must be shared.
Recursive Functions of Symbolic Expressions, J. McCarthy, CACM, 3, 4, 1960, ppg. 184-195.
This is McCarthy's seminal Lisp paper. (Available online in various formats at his web site: http://www-formal.stanford.edu/jmc/index.html)

On-line sources

The Association of Lisp Users
Information on conferences, jobs, implementations, etc.
Common Lisp HyperSpec (TM)
A hypertext version of the ANSI Common Lisp standard , constructed by Kent Pittman and hosted by Harlequin, Inc.
Searchable ANSI Common Lisp Index
Constructed by Steve Haflich and hosted by Franz, Inc., this site offers a full-text index of the final draft document which became (with non-technical revisions by ANSI) the Common Lisp specification. Very handy for finding all references to a term.
MetaObject Protocol
Not a part of the Common Lisp standard, the MetaObject Protocol is widely supported as a interface to the mechanism underlying CLOS.

Commercial vendors

Digitool, Inc. Home Page
Digitool provides both 68K and PPC versions of Macintosh Common Lisp, a world-class Lisp development system.
The Franz Inc. Home Page
Franz makes Common Lisp compilers for Unix and Windows. They have trial versions for Windows and Linux.
Harlequin
Harlequin has a free Lisp interpreter for Windows and a professional product for 32-bit Windows based upon their LispWorks environment.

Contents | Cover
Chapter 32 | Chapter 34
Copyright © 1995-1999, David B. Lamkins
All Rights Reserved Worldwide

This book may not be reproduced without the written consent of its author. Online distribution is restricted to the author's site.