Previous  <··

Table
of
Contents

··>  Next


FUNDING  A REVOLUTION
Government Support for Computing Research

Committee on Innovations in Computing and Communications: Lessons from History,
National Research Council

9

Developments in Artificial Intelligence


Box 9.1

The Development and Influence of LISP

 

LISP has been an important programming language in AI research, and its history demonstrates the more general benefits resulting from the efforts of AI researchers to tackle exceptionally difficult problems. As with other developments in AI, LISP demonstrates how, in addressing problems in the representation and computational treatment of knowledge, AI researchers often stretched the limits of computing technology and were forced to invent new techniques that found their way into mainstream application.

Early AI researchers interested in logical reasoning and problem solving needed tools to represent logical formulas, proofs, plans, and computations on such objects. Existing programming techniques were very awkward for this purpose, inspiring the development of specialized programming languages, such as list-processing languages. List structures provide a simple and universal encoding of the expressions that arise in symbolic logic, formal language theory, and their applications to the formalization of reasoning and natural language understanding. Among early list-processing languages (the name is based on that phrase), LISP was the most effective tool for representing both symbolic expressions and manipulations of them. It was also an object of study in itself. LISP can readily operate on other LISP programs that are represented as list structures, and it thus can be used for symbolic reasoning on programs. LISP is also notable because it is based on ideas of mathematical logic that are of great importance in the study of computability and formal systems (see Chapter 8).

LISP was successful in niche commercial applications. For instance, LISP is the scripting language in AutoCAD, the widely used computer-aided design (CAD) program from AutoDesk. But it had much broader implications for other languages. Effective implementation of LISP demanded some form of automatic memory management. Thus, LISP had critical influence far beyond AI in the theory and design of programming languages, including all functional programming languages as well as object-oriented languages such as Simula-67, SmallTalk, and, most notably, Java. This is not just a happy accident, but rather a consequence of the conceptual breakthroughs arising from the effort to develop computational models of reasoning. Other examples include frame-based knowledge representations, which strongly influenced the development of object-oriented programming and object databases; rule-based and logic-programming language ideas, which found practical applications in expert systems, databases, and optimization techniques; and CAD representations for reasoning with uncertainty, which have found their way into manufacturing control, medical and equipment diagnosis, and human-computer interfaces.


Table
of
contents

Copyright 1999 National Academy Press