0%

Paradigms of Artificial Intelligence Programming - 00

https://github.com/norvig/paip-lisp/blob/master/docs/preface.md

Preface

Introduction

paradigm n 1 an example or pattern; esp an outstandingly clear or typical example.

-Longman’s Dictionary of the English Language, 1984

This book is concerned with three related topics:

  • the field of artificial intelligence, or AI;
  • the skill of computer programming;
  • and the programming language Common Lisp.

Why Lisp? Why Common Lisp?

Lisp is one of the oldest programming languages still in widespread use today.

  1. Lisp is the most popular language for AI programming, particularly in the United States. If you’re going to learn a language, it might as well be one with a growing literature, rather than a dead tongue.
  2. Lisp makes it easy to capture relevant generalizations in defining new objects.
  3. Lisp makes it very easy to develop a working program fast. Lisp programs are concise and are uncluttered by low-level detail. Common Lisp offers an unusually large number of useful predefined objects, including over 700 functions.

Outline of the Book

This book is organized into five parts.

  • Part I introduces the Common Lisp programming language.
  • Part II covers four early AI programs that all use rule-based pattern-matching techniques. By starting with relatively simple versions of the programs and then improving them and moving on to more complex programs, the reader is able to gradually acquire increasingly advanced programming skills.
  • Part III detours from AI for a moment to present some general tools for more efficient programming. The reader who masters the material in this part can be considered an advanced Lisp programmer.
  • Part IV covers some advanced AI programs.
  • Part V includes material that is peripheral to AI but important for any serious Lisp programmer.

Supplementary Texts and Reference Books

  • Common Lisp the Language, Second Edition
  • Common Lisp: A Gentle Introduction to Symbolic Computation by David Touretzky. Most appropriate for beginners, including those who are not computer scientists.
  • A Programmer’s Guide to Common Lisp by Deborah G. Tatar. Appropriate for those with experience in another programming language, but none in Lisp.
  • Common LISPcraft by Robert Wilensky. More comprehensive and faster paced, but still useful as an introduction as well as a reference.
  • Common Lisp by Wade L. Hennessey. Somewhat hit-and-miss in terms of the topics it covers, but with an enlightened discussion of implementation and efficiency issues that do not appear in the other texts.
  • LISP (3d edition) by Patrick H. Winston and Bertold Horn. Covers the most ground in terms of programming advice, but not as comprehensive as a reference. May be difficult for beginners. Includes some AI examples.
  • Programming Paradigms in Lisp by Rajeev Sangal. Presents the different styles of programming that Lisp accommodates, illustrating them with some useful AI tools.
  • Programming for Artificial Intelligence by Wolfgang Kreutzer and Bruce McKenzie. Covers some of the basics of rule-based and pattern-matching systems well, but covers Lisp, Prolog, and Smalltalk, and thus has no time left for details in any of the languages.
  • Artificial Intelligence Programming (2d edition) by Eugene Charniak, Christopher Riesbeck, Drew McDermott, and James Meehan. Contains 150 pages of Lisp overview, followed by an advanced discussion of AI tools, but no actual AI programs.
  • AI in Practice: Examples in Pop-11 by Allan Ramsey and Rosalind Barrett. Advanced, high-quality implementations of five AI programs, unfortunately using a language that has not gained popularity.

☝ Back to Catalog

☞ Introduction to Lisp