There are several good Lisp introductions and tutorials: 1. David S. Touretzky "Common Lisp: A Gentle Introduction to Symbolic Computation" Benjamin/Cummings Publishers, Redwood City, CA, 1990. 592 pages. ISBN 0-8053-0492-4 ($42.95). Perhaps the best tutorial introduction to the language. It has clear and correct explanations, and covers some fairly advanced topics. The book is an updated Common Lisp version of the 1984 edition published by Harper and Row Publishers. Three free Lisp educational tools which were used in the book -- Evaltrace, DTRACE and SDRAW -- are available by anonymous ftp from b.gp.cs.cmu.edu:/usr/dst/public/lisp/ b.gp.cs.cmu.edu:/usr/dst/public/evaltrace/ Evaltrace is a graphical notation for explaining how evaluation works and is described in "Visualizing Evaluation in Applicative Languages" by David S. Touretzky and Peter Lee, CACM 45-59, October 1992. DTRACE is a "detailed trace" which provides more information than the tracing tools provided with most Common Lisp implementations. SDRAW is a read-eval-draw loop that evaluates Lisp expressions and draws the result as a cons cell diagram (for both X11 and ascii terminals). Also available is PPMX, a tool for pretty printing macro expansions. 2. Robert Wilensky. "Common LISPcraft" W. W. Norton, New York, 1986. 500 pages. ISBN 0-393-95544-3. 3. Wade L. Hennessey. "Common Lisp" McGraw-Hill, New York, 1989. 395 pages. ISBN 0-07-028177-7, $26.95. Fairly good, but jumps back and forth from the simple to the complex rather quickly, with no clear progression in difficulty. 4. Laurent Siklossy. "Let's Talk LISP" Prentice-Hall, NJ, 1976. 237 pages, ISBN 0-13-53276-2-8. Good introduction, but quite out of date. 5. Stuart C. Shapiro. "Common Lisp: An Interactive Approach" Computer Science Press/W.H. Freeman, New York, 1992. 358 pages, ISBN 0-7167-8218-9. The errata for the book may be obtained by anonymous ftp from ftp.cs.buffalo.edu:/users/shapiro/clerrata.ps Other introductions to Lisp include: 1. A. A. Berk. "LISP, The Language of Artificial Intelligence" Van Nostrand Reinhold, 1985. 160 pages, ISBN 0-44-22097-4-6. 2. Paul Y. Gloess. "An Alfred handy guide to Understanding LISP" Alfred Publishers (Sherman Oaks, CA), 1982. 64 pages, ISBN 0-88-28421-9-6, $2.95. 3. Ward D. Maurer. "The Programmer's Introduction to LISP" American Elsevier, New York, 1972. 112 pages, ISBN 0-44-41957-2-6. 4. Hank Bromley and Richard Lamson. "LISP Lore: A Guide to Programming the LISP Machine", 2nd edition Kluwer Academic, Boston, 1987. 337 pages, ISBN 0-89-83822-8-9, $49.95. 5. Sharam Hekmatpour. "Introduction to LISP and Symbol Manipulation" Prentice Hall, New York, 1989. 303 pages, ISBN 0-13-53749-0-1, $40. 6. Deborah G. Tatar "A programmer's guide to Common Lisp" Digital Press, 1987. 327 pages. ISBN 0-932376-87-8. Good introduction on Common Lisp for programmers familiar with other programming languages, such as FORTRAN, PASCAL, or C. 7. Timothy Koschmann "The Common Lisp Companion" John Wiley & Sons, 1990. 459 pages, ISBN 0-471-503-8-8. Targeted for those with some programming experience who wish to learn draft-ANSI Common Lisp, including CLOS and the CL condition system. Examples progress incrementally from simple numerical calculation all the way to a logic-programming extension to CL. More advanced introductions to Lisp and its use in Artificial Intelligence include: 1. Peter Norvig. "Paradigms of AI Programming: Case Studies in Common Lisp" Morgan Kaufmann, 1992. 946 pages. ISBN 1-55860-191-0 ($49.95). Provides an in-depth exposition of advanced AI programming techniques and includes large-scale detailed examples. The book is the most advanced AI/Common-Lisp programming text and reference currently available, and hence is not for the complete novice. It focuses on the programming techniques necessary for building large AI systems, including object-oriented programming, and has a strong performance orientation. The text is marked by its use of "non-toy" examples to illustrate the techniques. All of the examples are written in Common Lisp, and copies of the source code are available by anonymous ftp from unix.sri.com:/pub/norvig and on disk in Macintosh or DOS format from the publisher. Some of the techniques described include rule-based pattern matching (GPS, Eliza, a subset of Macsyma, the Emycin expert system shell), constraint propagation and backtracking (Waltz line-labelling), alpha-beta search (Othello), natural language processing (top-down, bottom-up and chart parsing), logic-programming (unification and Prolog), interpreters and compilers for Scheme, and object-oriented programming (CLOS). The examples are also used to illustrate good programming style and efficiency. There is a guide to trouble-shooting and debugging Lisp programs, a style guide, and a discussion of portability problems. Some of the efficiency techniques described include memoization, data indexing, compilation, delaying computation, proper use of declarations, avoiding garbage collection, and choosing and using the correct data structure. The book also serves as an advanced introduction to Common Lisp, with sections on the Loop macro, CLOS and sequences, and some coverage of error handling, series, and the package facility. 2. Eugene Charniak, Christopher K. Riesbeck, Drew V. McDermott and James R. Meehan. "Artificial Intelligence Programming", 2nd edition. Lawrence Erlbaum Associates (Hillsdale, NJ), 1987. 533 pages, ISBN 0-89-85960-9-2, $29.95. Provides many nice code fragments, all of which are written in Common Lisp. The first half of the book covers topics like macros, the reader, data structures, control structures, and defstructs. The second half of the book describes programming techniques specific to AI, such as discrimination nets, production systems, deductive database retrieval, logic programming, and truth maintenance. 3. Patrick H. Winston and Berthold K. P. Horn. "LISP", 3rd edition. Addison-Wesley (Reading, MA), 1989. 611 pages. ISBN 0-201-08319-1 Covers the basic concepts of the language, but also gives a lot of detail about programming AI topics such as rule-based expert systems, forward chaining, interpreting transition trees, compiling transition trees, object oriented programming, and finding patterns in images. Not a tutorial. Has many good examples. Source code for the examples is available by anonymous ftp from ftp.ai.mit.edu:/pub/lisp3/. (The code runs in Lucid, Allegro, KCL, GCLisp, MCL, Symbolics Genera. Send mail with subject line "help" to ai3@ai.mit.edu for more information.) 4. John R. Anderson, Albert T. Corbett, and Brian J. Reiser. "Essential LISP" Addison-Wesley (Reading, MA), 1987. 352 pages, ISBN 0-20-11114-8-9, $23.95. Concentrates on how to use Lisp with iteration and recursion. 5. Robert D. Cameron and Anthony H. Dixon "Symbolic Computing with Lisp" Prentice-Hall, 1992, 326 pages. ISBN 0-13-877846-9. The book is intended primarily as a third-year computer science text. In terms of programming techniques, it emphasizes recursion and induction, data abstraction, grammar-based definition of Lisp data structures and functional programming style. It uses two Lisp languages: (1) a purely functional subset of Lisp called Small Lisp and (2) Common Lisp. An MS-DOS interpreter for Small Lisp (including source) is provided with the book. It considers applications of Lisp to formal symbolic data domains: algebraic expressions, logical formulas, grammars and programming languages. 6. Tony Hasemer and John Domingue. "Common Lisp Programming for Artificial Intelligence" Addison-Wesley, Reading, MA, 1989. 444 pages, ISBN 0-20-11757-9-7. This book presents an introduction to Artificial Intelligence with an emphasis on the role of knowledge representation. Three chapters focus on object-oriented programming, including the construction and use of a subset of CLOS. The authors' research into the problems faced by novice Lisp users influenced the content and style of the book. (The authors are members of the Human Cognition Research Laboratory at the Open University in the United Kingdom.) The book employs a tutorial approach, especially in areas that students often find difficult, such as recursion. Early and progressive treatment of the evaluator promotes understanding of program execution. Hands-on exercises are used to reinforce basic concepts. The book assumes no prior knowledge of Lisp or AI and is a suitable textbook for students in Cognitive Science, Computer Science and other disciplines taking courses in Lisp or AI programming as well as being invaluable for professional programmers who are learning Lisp for developing AI applications. 7. Steven Tanimoto "The Elements of Artificial Intelligence Using Common Lisp", 2nd edition Computer Science Press, New York, 1995. 562 pages, ISBN 0-71-67826-9-3, (ISBN 0-71-67823-0-8, 1990, $48). 8. Patrick R. Harrison "Common Lisp and Artificial Intelligence" Prentice Hall, Englewood Clifs, NJ, 1990. 244 pages, ISBN 0-13-1552430, $22.50. 9. Paul Graham "On Lisp: Advanced Techniques for Common Lisp" Prentice Hall, Englewood Clifs, NJ, 1994. 413 pages, ISBN 0-13-030552-9. Emphasizes a bottom-up style of writing programs, which he claims is natural in Lisp and has advantages over the traditional way of writing programs in C and Pascal. Also has in-depth sections on writing macros with several nice examples. Source code is available by anonymous ftp from ftp.das.harvard.edu:/pub/onlisp/ as a single 56kb file. 10. John A. Moyne "Lisp: A first language for computing" Van Nostrand Reinhold, New York, 1991. 278 pages, ISBN 0442004265. General Lisp reference books include: 1. ANSI/X3J13 Programming Language Common Lisp (ANSI/X3.226-1994) American National Standards Institute 11 West 42nd Street, New York, NY 10036. http://www.ansi.org/ 2. Kent M. Pitman Common Lisp HyperSpec (TM) Harlequin, Inc., 1996. This is an HTML-only document available via the web. Available for browsing from http://www.harlequin.com/books/HyperSpec/FrontMatter/ Available free for download (subject to some legal restrictions) from http://www.harlequin.com/books/HyperSpec/ Includes text from ANSI/X3.226-1994 and other design rationales. 3. Guy L. Steele "Common Lisp: The Language" [CLtL1] Digital Press, 1984. 465 pages. ISBN 0-932376-41-X. 4. Guy L. Steele "Common Lisp: The Language, 2nd Edition" [CLtL2] Digital Press, 1990. 1029 pages, ISBN 1-55558-041-6 paperbound ($39.95). [Butterworth-Heinemann, the owners of Digital Press, have made the LaTeX sources to this book available by anonymous FTP from cambridge.apple.com:/pub/CLTL/ A copy of the distribution is also available from ftp.cs.cmu.edu:/user/ai/lang/lisp/doc/cltl/ The paperbound version of the book is, of course, available at fine bookstores, or contact them directly at Digital Press, 225 Wildwood Street, Woburn, MA 01801, call 800-366-2665 (617-928-2527), or fax 800-446-6520 (617-933-6333). A copy of the Digital Press book catalog is available from the same FTP location.] A html version, produced using latex2html on the latex sources, is accessible via the URL: http://www.cs.cmu.edu/Web/Groups/AI/html/cltl/cltl2.html 5. Franz Inc. "Common Lisp: The Reference" Addison-Wesley, Reading, MA 1988. ISBN 0-201-11458-5 Entries on Lisp (CLtL1) functions in alphabetical order. 6. Rosemary Simpson "Common Lisp, the Index" Franz Inc., Berkeley, CA, 1987. 71 pages, $4.95. A cross-referenced index to Steele's book, 1st edition. Lisp periodicals include: 1. LISP Pointers. Published by ACM SIGPLAN six times a year. Volume 1, Number 1 was April-May 1987. Subscriptions: ACM Members $12; ACM Student Members $7; Non-ACM members $25. Mail checks payable to the ACM to ACM Inc., PO Box 12115, Church Street Station, New York, NY 10249. 2. LISP and Symbolic Computation, Kluwer Academic Press. Volume 1 was published in 1989. (Robert Kessler <kessler@cons.cs.utah.edu> and Carolyn Talcott <clt@sail.stanford.edu> are the editors). ISSN 0892-4635. Subscriptions: Institutions $169; Individuals $80. Add $8 for air mail. Kluwer Academic Publishers, PO Box 322, 3300 AH Dordrecht, The Netherlands, or Kluwer Academic Publishers, PO Box 358, Accord Station, Hingham, MA 02018-0358. A full table of contents of all published issues, aims and scope, and instructions for authors are available by anonymous ftp from ftp.std.com:/Kluwer/journals/ as the files lisp.toc and lisp.inf. 3. Proceedings of the biannual ACM Lisp and Functional Programming Conference. (First one was in 1980.) 4. Proceedings of the annual Lisp Users and Vendors Conference. Implementation-specific questions: 1. Lucid. See the wizards.doc file that comes with the Lucid release. It describes functions, macros, variables and constants that are not official parts of the product and are not supported. Constructs described in this file include: the interrupt facility, the source file recording facility, the resource facility, multitasking, writing your own streams, lisp pipes, i/o buffers, the compiler, floating-point functions, memory management, debugger information, the window tool kit, extensions to the editor, the foreign function interface, clos information, delivery toolkit information, and Lucid lisp training classes. The wizards.doc file also covers i/o constructs, functions for dealing with DEFSTRUCT, functions and constants for dealing with procedure objects, functions and constants for dealing with code objects, function for mapping objects, additional keyword argument to DISKSAVE, function used in the implementation of arrays, function for monitor-specific behavior for a process, additional keyword argument to RUN-PROGRAM, and load-time evaluation. Many books on Scheme are worth reading even if you use Common Lisp, because many of the issues are similar. Scheme is a simpler language to learn, so it is often used in introductory computer science classes. See the Scheme FAQ for a list of introductions and references for Scheme. The two key introductions are Abelson and Sussman's "Structure and Interpretation of Computer Programs" and Friedman and Felleisen's "The Little LISPer". Special Topics: Garbage Collection: Wilson, Paul R., "Uniprocessor Garbage Collection Techniques" Proceedings of the 1992 International Workshop on Memory Management. Springer Lecture Notes #637. Surveys garbage collection techniques. Includes an excellent bibliography. Available by anonymous ftp from cs.utexas.edu:/pub/garbage/gcsurvey.ps. The BibTeX format of the bibliography is also available in this directory, along with several other papers. Contact wilson@cs.utexas.edu for more info.Go Back Up