Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp

This book is organized into five parts.

Part I introduces the Common Lisp programming language.
Chapter 1 gives a quick introduction by way of small examples that demonstrate
the novel features of Lisp. It can be safely skipped or skimmed by the experienced

Chapter 2 is a more extended example showing how the Lisp primitives can be
put together to form a program. It should be studied carefully by the novice, and
even the experienced programmer will want to look through it to get a feel for my
programming style.

Chapter 3 provides an overview of the Lisp primitives. It can be skimmed on first
reading and used as a reference whenever an unfamiliar function is mentioned in
the text.

Part I has been kept intentionally brief, so that there is more room for presenting
actual A1 programs. Unfortunately, that means that another text or reference book
(or online help) may be needed to clarify some of the more esoteric features of the
language. My recommendations for texts are on page xiii.
The reader may also want to refer to chapter 25, which offers some debugging
and troubleshooting hints.

Part I1 covers four early A1 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.

Chapter 4 presents a reconstruction of GPS, the General Problem Solver. The
implementation follows the STRIPS approach.

Chapter 5 describes ELIZA, a program that mimics human dialogue. This is
followed by a chapter that generalizes some of the techniques used in GPS and ELIZA
and makes them available as tools for use in subsequent programs.

Chapter 7 covers STUDENT, a program that solves high-school-level algebra word

Chapter 8 develops a small subset of the MACSYMA program for doing symbolic
algebra, including differential and integral calculus. It may be skipped by those who
shy away from heavy mathematics.

Part I11 detours from A1 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.

Chapter 9 is a detailed study of efficiency techniques, concentrating on caching,
indexing, compilation, and delaying computation. Chapter 10 covers lower-level efficiency
issues such as using declarations, avoiding garbage generation, and choosing
the right data structure.

Chapter 11 presents the Prolog language. The aim is two-fold: to show how to
write an interpreter for another language, and to introduce the important features
of Prolog, so that they can be used where appropriate. Chapter 12 shows how a
compiler for Prolog can be 20 to 200 times faster than the interpreter.
Chapter 13 introduces object-oriented programming in general, then explores the
Common Lisp Object System (CLOS).

Chapter 14 discusses the advantages and limitations of both logic-oriented and
object-oriented programming, and develops a knowledge representation formalism
using all the techniques of part 111.

Part IV covers some advanced A1 programs.

Chapter 15 uses the techniques of part I11 to come up with a much more efficient
implementation of MACSYMA. It uses the idea of a canonical form, and replaces the
very general rewrite rule approach with a series of more specific functions.

Chapter 16 covers the EMYCIN expert system shell, a backward chaining rulebased
system based on certainty factors. The MYCIN medical expert system is also
covered briefly.

Chapter 17covers the Waltzline-labeling algorithmfor polyhedra (usingHuffmanClowes
labels). Different approaches to constraint propagation and backtracking
are discussed.

Chapter 18 presents a program that plays an excellent game of Othello. The
technique used, alpha-beta searching, is appropriate to a wide variety of two-person

Chapter 19 is an introduction to natural language processing. It covers contextfree
grammar, top-down and bottom-up parsing, chart parsing, and some semantic
interpretation and preferences.

Chapter 20 extends the linguistic coverage of the previous chapter and introduces
logic grammars, using the Prolog compiler developed in chapter 11.

Chapter 21 is a fairly comprehensive grammar of English using the logic grammar
formalism. The problems of going from a simple idea to a realistic, comprehensive
program are discussed.

Part V includes material that is peripheral to A1 but important for any serious
Lisp programmer.

Chapter 22 presents the Scheme dialect of Lisp. A simple Scheme interpreter is
developed, then a properly tail-recursive interpreter, then an interpreter that explicitly
manipulates continuations and supports ca 1 1 Icc. Chapter 23 presents a Scheme

Chapter 24 presents the features that are unique to American National Standards
Institute (ANSI) Common Lisp. This includes the 1 oop macro, as well as error
handling, pretty printing, series and sequences, and the package facility.

Chapter 25 is a guide to troubleshooting and debugging Lisp programs.
The bibliography lists over 200 sources, and there is a comprehensive index. In
addition, the appendix provides a directory of publicly available'lisp programs.[center][/center]

» کتابناکهای مرتبط:
برنامه نویسی به زبان C
Practical Data Science with R
Lua Quick Start Guide: The easiest way to learn Lua programming

نسخه ها
حجم: 17 مگابایت
تعداد صفحات: 872
5 / 5
با 2 رای
امتیاز دهید
5 4 3 2 1

دیدگاه‌ها: 0

پاسخنگارش دیدگاه
دیدگاهی درج نشده؛ شما نخستین نگارنده باشید.

درج دیدگاه مختص اعضا است! برای ورود به حساب خود اینجا و برای عضویت اینجا کلیک کنید.

Powered by You