- Paperback: 946 pages
- Publisher: Morgan Kaufmann; 1 edition (October 15, 1991)
- Language: English
- ISBN-10: 1558601910
- ISBN-13: 978-1558601918
- Product Dimensions: 7.5 x 1.9 x 9.2 inches
- Shipping Weight: 3.7 pounds (View shipping rates and policies)
- Average Customer Review: 4.7 out of 5 stars See all reviews (20 customer reviews)
- Amazon Best Sellers Rank: #491,252 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Frequently bought together
Customers who bought this item also bought
This is an overview of classical artificial intelligence (AI) programming via actual implementation of landmark systems (case studies). For the student interested in AI, Paradigms of Artificial Intelligence Programming is an invaluable history lesson. Even the programmer who is relatively uninterested in AI will find value in the book's basic introduction to Lisp and case studies written in Lisp. But perhaps the book's best feature is its information on efficiency considerations in Lisp. Paradigms of Artificial Intelligence Programming is worth purchasing for these discussions alone, which provide a wealth of useful guidelines for optimizing your code.
Paradigms of AI Programming teaches advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-art Common Lisp, the book teaches students and professionals how to build and debug robust practical programs, while demonstrating superior programming style and important AI concepts. The author strongly emphasizes the practical, performance issues of writing real working programs of significant size, including chapters on troubleshooting and efficiency. A discussion of the fundamentals of object-oriented programming and a description of the main CLOS functions are included. This volume is an excellent text for a course on AI programming, a useful supplement for general AI courses and an indispensable reference for the professional programmer. -- Book Description
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
William Zinsser said, "The essence of writing is rewriting" and the same can be said for writing computer programs. Norvig's book presents this process--how the limitations of a program are overcome by revision and rewriting. What sets Norvig apart as a writer is that, amazingly enough, he can write about debugging (the most dreaded part of computer programming) and make it a fascinating read!
Lisp has been getting a higher profile lately because of essayists like Paul Graham and Philip Greenspun; in particular, Greenspun's Tenth Rule of Programming which states: "Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp." So, should this book be read as an exhortation to return to Lisp as the preferred programming language?
Paradoxically, I think not. One third of the way through the book, Norvig shows us how to implement Prolog in Lisp. From then on out, most of the AI techniques he presents either directly use Prolog instead of Lisp (such as his excellent discussion of natural language processing using Prolog) or use Prolog as a base to build on (such as his discussions on knowledge representation).
From this we can abstract what I'd like to call Norvig's Corollary to Greenspun's Tenth Law of Programming: "Any sufficiently complicated LISP program is going to contain a slow implementation of half of Prolog". I'm leaving out the "ad hoc", "bug-ridden" part of Greenspuns's law, because Norvig's programs are neither. But it is quite remarkable the degree to which, once having absorbed Prolog, Norvig uses Prolog as the basis for further development, rather than Lisp.
Is this a book about Prolog then? Again, no. What is the take-away message? It is this: as our world becomes more and more complex, and as the problems which programmers are facing become more and more complex, we have to program at a higher and higher level.
Norvig does not stop at just embedding Prolog in Lisp. He also shows us how to embed scheme as well. Excellent discussion on the mysterious call/cc function and on continuations.
In a capsule review, it is impossible to really give an overview of a 1,000 page book like this one. But the scope and heft of the volume really needs to be commented on: the programs presented in this book are like basis vectors, the totality of which nearly span the space of programming itself. In no way should this be considered "just an AI book" or "just a LISP book". This book transcends language, time, and subject matter. It is a programmer's book for the ages.
I'm an undergrad. I bought this to learn Lisp, and it's absolutely blown my mind with how good it is. I've learned more from this book than I ever will from my college classes. I'd say this has been a really good introduction to Lisp, and a really good introduction to AI. It's easily becoming my favorite programming book. It's covered more material than 3/4 of my programming classes combined.
The kindle version is bad though. The syntax is all wonky, which is critical when you need to differentiate `s from 's and ,s from .s. There are tons of misspellings in the kindle version. The code formatting is very difficult to read. Thankfully I've been able to get the code from the Peter Norvig's web page. If you can, get the paper edition. This is the second Common Lisp book I've read, so I've had enough experience that I can debug all of these problems myself.
a) A historical study of Artificial Intelligence, with USABLE examples of code, or
b) A book presenting techniques for programming in Common Lisp.
As a reference about Common Lisp, it is certainly lacking, but this is no great problem when both the Common Lisp HyperSpec and Steele's book are readily available in electronic form. It provides something more important: SIGNIFICANT examples, and significant discussions on WHY you would use various Lisp idioms, and, fairly often, discussions on HOW pieces of Common Lisp are likely to be implemented. Its discussion of an implementation of the LOOP macro, for instance, provides a very different point of view than the "references" to LOOP. (Contrast too with Graham's books, which largely deprecate the use of LOOP.)
From an AI perspective, it is also very good, providing WORKING SAMPLES for a whole lot of the historically significant AI problems, including Search, PLANNER, symbolic computation, and the likes.
It would be interesting to see parallel works from the following sorts of perspectives:
- The same sorts of AI problems solved using functional languages (e.g. - ML, Haskell), to allow contrasting the use of those more modern languages. Being more "purely functional" has merits; such languages commonly lack macros, which is something of a disadvantage.
- The use of CL to grapple with some other sorts of applications, notably random access to data [e.g. - databases] and rendition of output in HTML/SGML/XML [e.g. - web server].
Most Recent Customer Reviews
large Lisp systems.Read more
very enthusastic about AI and programming.