[comp.ai.digest] books on common lisp & prolog

AKBARI@CS.COLUMBIA.EDU.UUCP (05/07/87)

>Can anyone make a comparison between Wilensky's "CommonLispCraft" and Tatar's
>"A Programmer's Guide to Common Lisp"?  What are the strengths and weaknesses
>of each book?  I know about Steele's book but it is in a different
>class.
>...
>                                                        Bill Roberts

Having spent some time working with several people in learning to
become programmers, I have a few comments regarding books available
(titles are approximate, don't have them in front of me):

in general, experience points to several important needs when teaching
& selecting stuff:

- students learn well by studying *working* examples, both in terms of
how to program as well as details like style, data abstraction, etc.
providing well-documented examples motivates all sorts of queries
regarding syntax, efficiency, portability, etc. as well. 

- the trade-off between presenting concepts & gory details is a
personal matter, but i've found that some amount of both needs to done
at the beginning.  once the student begins to think in the
mind-expanding frame of lisp (rather than, say, c), more & more
details can be presented, relying on the student himself to find out
about implementation details on his own.

COMMON LISP

not familiar with tartar's book.  the following three are the best I
know of for learning.  would recommend using winston & horn and
wilensky almost concurrently initially (personal choice as to which
offers a clearer intro to lisp concepts), followed by the second half of
winston & horn for applications.  those interested in learning much
more about hacking should spend more time with wilensky.  steele tends
to be useful after one has learned a fair amount about lisp hacking in
general.  would use with abelson & sussman _structure & interpretation
of computer programs_ (mit press) for great intro to concepts
(streams, data-driven programming, ...).

steele. _common lisp: the language_  digital press, 1984.
besides being the de facto standard in most ways, it is also helpful
when trying to port across machines (much easier than lugging around
documentation for symbolics, ti, lucid, vax lisp...).  also good for
those late-night hacking sessions (steele manages to imbue
mind-boggling minutiae [spelling?] with a dash of humor).  not
necessarily recommended bedtime reading, however (except for
masochists).

wilensky. _commonlisp craft_  norton.
an excellent, readable intro to common lisp hacking, with just the
right blend of tutorial & documentation.  tends to go much more into
the details of common lisp than does winston & horn, but still in a
readable, useful format.  last chapter or so presents a pattern matcher.

winston & horn. _lisp_ (2nd edition)  addison-wesley.
good, readable intro to lisp in general, with common lisp almost an
incidental choice of dialect.  tends to rapidly leave low-level
details in preference for looking at ai applications of lisp.  very
helpful in introducing people to concepts that have been robustly
developed elsewhere (e.g., there is a simple frame system, simple
intro to object oriented programming via FLAVORS, mathematical
examples, pattern matcher, expert system inference engine, etc.).

PROLOG

prolog is as different from lisp as lisp is from c, at least in terms
of teaching it.  would begin with bratko, followed by sterling &
shapiro after student has done a bit of prolog programming.  introduce
clocksin & mellish somewhere in between.

bratko. _introduction to prolog programming for artificial
intelligence_.  addison-wesley.
great intro to the language.  presents just enought about
backtracking, unification, etc. along with examples to be of real
value.  gives many examples & exercises.  not too much humor, though.
examples of searching, expert system shells, games, etc.

sterling & shapiro. _the art of prolog_.  mit press.
excellent book on advanced topics in prolog: garbage collection,
efficiency, top-down vs. bottom-up construction of data structures,
etc.  many such topics have not been covered elsewhere, and are done
very well.  would not recommend to inexperienced, motivated people;
first part tends to be a mathematical intro which may not be appealing
to some.

clocksin & mellish.  _prolog_ springer-verlag.
standard text.  a little hard to read at times, tends to bog down in
gory details before reader has feel for language as whole.

let me know if this helps.

john c akbari

    ARPANET & Internet  	akbari@CS.COLUMBIA.EDU
    BITnet			akbari%CS.COLUMBIA.EDU@WISCVM.WISC.EDU
    uucp & usenet               ...!seismo!columbia!cs!akbari
    DECnet			akbari@cs
    PaperNet			380 riverside drive, no. 7d
				new york, new york  10025   usa
    SoundNet			212.662.2476
-------