Section

Home
Art Critics
Art Movements
Artist Directory
Site Map

SearchArtists


SearchShop
(books, movies)



Artists

Franz Kline
Pablo Picasso

Art Movements

Abstract Expressionism
Art Deco
Art Noveau
Arte Povera
Baroque
Cubism
Futurism


Bauhaus
Byzantine Art
Camden Town Group
Classicism
Contemporary Realism
Cubism
Dada
Der Blaue Reiter
Die Brücke
Die Neue Sachlichkeit
Expressionism
Fauvism
Fantasy Art
Futurism
Golden Age of Illustration
Gothic Art
The Group Of Seven
The Harlem Renaissance
History Painting
The Hudson River School
Impressionism
Magic Realism
Mannerism
Minimalism
Les Nabis
Neoclassicism
Neo-Plasticism
Op Art
Orientalism
Photorealism
Pointillism
Pop Art
Post-Impressionism
Precisionism
The Pre-Raphaelites
Realism
Regionalism
The Renaissance
Early Renaissance
High Renaissance
Mannerism
Northern Renaissance
The Rococo Style
Romanticism
The Sensation Show
Social Realism
Surrealism
Symbolism
Ukiyo-e Printmaking
Western Art
Wildlife Art



Neon Interactive Web Design and Development

Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp


Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
See Larger Image

by:Peter Norvig
List Price: $77.95
Amazon.com's Price: $77.95
Prices subject to change.

Availability: Usually ships in 24 hours
Release Date: 01 October, 1991
Media: Paperback
Publisher: Morgan Kaufmann
Buy Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp from Amazon.com



Description:
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.


Related Items:
Customer Reviews
Average Rating: 5.0 5.0

Spotlight customer reviews:

Customer Rating: 5 5
Comment: "Paradigms of Artificial Intelligence Programming" is one of the best books of computer science that I have ever read. I put it up there in the pantheon with "Structure and Interpretation of Computer Programs". I have found more useful and mind expanding material in these case studies than I have in many other books on computer science. I highly recommend this book to anyone, even if they have never used Lisp.

Customer Rating: 5 5
Comment: This book has been called "The best book on programming ever written". I'd have to agree--it is certainly the best that I've ever read.

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.

Customer Rating: 5 5
Comment: This book is equally excellent regardless of whether you wish to regard it as:

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].



[Back to Previous Page]