Text preview for : CSL-73-2_New_Programming_Languages_For_AI_Research.pdf part of xerox CSL-73-2 New Programming Languages For AI Research xerox parc techReports CSL-73-2_New_Programming_Languages_For_AI_Research.pdf
Back to : CSL-73-2_New_Programming_ | Home
\
' \ \
\
\
NEW PROGRAMMING LANGUAGES
FOR AI RESEARCH
BY DANIEL G. BOBROW AND BERTRAM RAPHAEL*
New directions in Artificial Intelligence research have led to the need for
certain nove~ features to be embedded in programming languages. This paper
gives an overview of the nature of these features, and their implementation
in four principal families of AI Languages: SAIL; PLANNER/CONNIVER;
QLISP/INTERLISP; and POPLER/POP-2. The programming features described
include: new ~ types and accessing mechanisms for stored expressions;
more flexible control structures, including multiple processes and
backtracking; pattern matching to allow comparison of data item with a
template, and extraction of labelled subexpressions; and deductive
mechanisms which allow the programming system to carry out certain
activities including modifying the data base and deciding which subroutines
to run next using only constraints and guidelines set up by the programmer.
~ertram Raphael is at the Stanford Research Institute, Menlo Park, California.
REPORT NO. CSL-73-2
DATE August 20, 1973
DESCRIPTORS
XEROX
PALO ALTO RESEARCH CENTER
3180 PORTER DRIVE/PALO ALTO/CALIFORNIA 94304
TABLE OF CONTENTS PAGE
CHAPTER I INTRODUCTION 2
CHAPTER II LANGUAGES COVERED 4
CHAPTER III SPECIAL FEATURES COMMON TO THE NEW LANGUAGES 7
A Data Types 7
B Control Structures 9
C Pattern Matching 13
D Deductive Mechanisms 14
CHAPTER IV DIFFERENCES BETWEEN THE NEW LANGUAGES 16
A Data Types and Storage Meohanisms 16
1 SAIL 16
2 PLANNER/CONNIVER 18
3 QLISP/INTERLISP 20
4 POPLER 21
B Control Structures 22
1 SAIL 22
2 PLANNER/CONNIVER 23
3 INTERLISP/QLISP 25
4 POPLER/POP-2 28
C Pattern Matching 29
1 SAIL 29
2 PLANNER/CONNIVER 29
3 QLISP/INTERLISP 31
4 POPLER 33
D Deductive Mechanisms 34
1 SAIL 34
2 PLANNER/CONNIVER 35
3 QLISP/INTERLISP 39
4 POPLER 41
CHAPTER V CONCl,.USIONS 42
CHAPTER VI BIBLIOGRAPHY 49
New Programming Languages for AI Research
Daniel G. Bobrow
Xerox Palo Alto Research Center
Palo Alto, California 94304
Bertram Raphael
Stanford Research Institute
Menlo Park, California 94025
Tutorial Lecture presented at
THIRD INTERNATIONAL JOINT CONFERENCE
ON
ARTIFICIAL INTELLIGENCE
stanford University
Stanford, California
Session 1: Monday, August 20, 1973
I INTRODUCTION
Most programming languages are universal in the sense that any
algorithm that can be expressed by a program in one language can also be
expressed in any of the other languages. However, the set of unique
facilities provided by a language makes some types of programs easier to
write in that language than in any other. Indeed, the main reason for
introducing new features into a programming language is to automate
procedures that the user needs and would otherwise have to code explicitly;
such features reduce the housekeeping details that distract the user from
the algorithms in which he is really interested. Therefore, underlying the
design of any programming language is a set of assumptions about the types
of programs that users of that language will be writing.
Historically the needs of the artificial intelligence (AI) research
community have stimulated new developments in programming systems. The
first high-level list-processing primitives were developed by Gelernter for
a geometry theorem prover