This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I John McCarthy, Massachusetts Institute of Technology, Cambridge, Mass. * April 1960 1 Introduction A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. The system was designed to facilitate experiments with a proposed system called the Advice Taker, whereby a machine could be instructed to handle declarative as well as imperative sentences and could exhibit common sense in carrying out its instructions. The original proposal [1] for the Advice Taker was made in November 1958. The main requirement was a programming system for manipulating expressions representing formalized declarative and imperative sentences so that the Advice Taker system could make deductions. In the course of its development the LISP system went through several stages of simplification and eventually came to be based on a scheme for rep resenting the partial recursive functions of a certain class of symbolic expres sions. This representation is independent of the IBM 704 computer, or of any other electronic computer, and it now seems expedient to expound the system by starting with the class of expressions called Sexpressions and the functions called Sfunctions. * Putting this paper in L A T E Xpartly supported by ARPA (ONR) grant N000149410775 to Stanford University where John McCarthy has been since 1962. Copied with minor nota tional changes from CACM , April 1960. If you want the exact typography, look there. Cur rent address, John McCarthy, Computer Science Department, Stanford, CA 94305, (email: jmc@cs.stanford.edu), (URL: http://wwwformal.stanford.edu/jmc/ ) 1 In this article, we first describe a formalism for defining functions recur sively. We believe this formalism has advantages both as a programming language and as a vehicle for developing a theory of computation. Next, we describe Sexpressions and Sfunctions, give some examples, and then describe the universal Sfunction apply which plays the theoretical role of a universal Turing machine and the practical role of an interpreter. Then we describe the representation of Sexpressions in the memory of the IBM 704 by list structures similar to those used by Newell, Shaw and Simon [2], and the representation of Sfunctions by program. Then we mention the main features of the LISP programming system for the IBM 704. Next comes another way of describ ing computations with symbolic expressions, and finally we give a recursive function interpretation of flow charts. We hope to describe some of the symbolic computations for which LISP has been used in another paper, and also to give elsewhere some applications of our recursive function formalism to mathematical logic and to the problem of mechanical theorem proving....
View Full
Document
 Spring '11
 Staff
 Computer Science

Click to edit the document details