Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

FAQ: Lisp Frequently Asked Questions 1/7 [Monthly posting]
Section - [1-2] Lisp books, introductions, documentation, periodicals, journals, and conference proceedings.

( Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Business Photos and Profiles ]


Top Document: FAQ: Lisp Frequently Asked Questions 1/7 [Monthly posting]
Previous Document: [1-1] What is the difference between Scheme and Common Lisp?
Next Document: [1-3] How can I improve my Lisp programming style and coding efficiency?
See reader questions & answers on this topic! - Help others by sharing your knowledge

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
              ftp://b.gp.cs.cmu.edu/usr/dst/public/lisp/
              ftp://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
        ftp://unix.sri.com/pub/ 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://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
          ftp://cambridge.apple.com/pub/CLTL/ 
       A copy of the distribution is also available from
          ftp://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://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.

User Contributions:

Comment about this article, ask questions, or add new information about this topic:

CAPTCHA