Recursive functions of symbolic expressions and their computation by machine, Part I

  title={Recursive functions of symbolic expressions and their computation by machine, Part I},
  author={John McCarthy},
  journal={Communications of the ACM},
  pages={184 - 195}
  • J. McCarthy
  • Published 1 March 1959
  • Computer Science
  • Communications of the ACM
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… 

Figures from this paper

The Evolution of Programming Languages

The purpose of this book is to study how high-level programming languages are designed to meet the needs of the human and the machine.

Artificial languages: Computers, connector systems, and data descriptions

The resolution of this problem involves first the development of a notation that is sufficient for describing arbitrary connector systems and arbitrary computers, and then a method of using such descriptions to choose automatically, from among the repertoire of machine operations, sequences of instructions that optimally carry out the intent of operations defined over the connector system.

Programming languages for non-numeric processing—2: An introduction to the COGENT programming system

The COGENT (COmpiler and GENeralized Translator) programming system is a compiler whose input language is designed to describe symbolic or linguistic manipulation algorithms, and is also applicable to such problem areas as algebraic manipulation, mechanical theorem-proving, and heuristic programming.

McCarthy’s LISP and Basis for Theory of Computation

McCarthy’s cast of LISP is highlighted “both as a programming language and as a formalism for doing [computable] function theory” and some elementary results in traditional theory of computation are mentioned.

A Heuristic Program that Solves Symbolic Integration Problems in Freshman Calculus

Some conclusions concerning computer solution of such problems are: pattern recognition is of fundamental importance, and the solution of a symbolic integration problem by a commercially available computer is far cheaper and faster than by man.

The Architecture of Lisp Machines

The authors enumerate the runtime requirements of a Lisp system and identify potential obstacles to good machine performance, and provide a classification of the Lisp machines that the authors encountered during the survey, and examine the techniques employed in these machines to cater to Lisp's runtime requirements.

Programs=data=first-class citizens in a computational world

  • N. JonesJ. Simonsen
  • Computer Science
    Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences
  • 2012
The ‘blob’ MOC is described: a recent stored-program computational model without pointers that is Turing complete in a strong sense: a universal interpretation algorithm exists that is able to run any program in a natural way and without arcane data encodings.

REC and Convert as aids in teaching Automata Theory ∗

An integrated program package for the study and simulation of several models of automatic computation: regular expressions, push-down automata, Markov algorithms, Turing machines, Post production systems and the LISP programming language is presented.

Standard LISP (reprint)

This paper is an attempt to provide a uniform subset of LISP 1.5 and its variants as it exists today and is sufficiently restricted in form so that programs written in it can run under any LISPs system upwardly compatible with LISp 1.

The LISP experience

This article exhibits programs that illustrate the power and simplicity of Lisp as a language for expressing the design and organization of com­ putational systems. Lisp, created in the late 1950s



Preliminary report: international algebraic language

This appears to be a natural method for a 256 memory machine, if it had good indexing and looping features and the contribution of the left-hand term becomes proportionately large enough such that it alone might be used within accuracy limits after a certain number of digits are developed.

Programs with common sense

Abstract : This paper discusses programs to manipulate in a suitable formal language (most likely a part of the predicate calculus) common instrumental statements. The basic program will draw

Programming the logic theory machine

A companion paper has discussed a system, called the Logic Theory Machine (LT), that discovers proofs for theorems in symbolic logic in much the same way as a human does. It manipulates symbols, it

The calculi of lambda-conversion

The description for this book, The Calculi of Lambda Conversion. (AM-6), will be forthcoming.

Manual, IBM Corporation, New York, Oct

  • 15,
  • 1956

A finite list of characters is admitted

  • A finite list of characters is admitted

FORTRAN Programmer's Reference Manual, IBM Corporation

    SAMELS 0 N , International algebraic language , Preliminary Report

      John Mitchell's CS242 lecture note

      • John Mitchell's CS242 lecture note