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