Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

McCarthy's LISP and Basis for Theory of Computation, Summaries of Theory of Computation

It is well-known that LISP is an algebraic list- processing language designed for artificial in- telligence, dedicated to symbolic computation,.

Typology: Summaries

2022/2023

Uploaded on 05/11/2023

paulina
paulina 🇺🇸

4.4

(13)

241 documents

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
39
McCarthy’s LISP and Basis
for Theory of Computation
Hong-Yi Dai
University of Edinburgh, UK
It is well-known that LISP is an algebraic list-
processing language designed for artificial in-
telligence, dedicated to symbolic computation,
powered by function orientation, enhanced by
program manipulation, and underpinned by
garbage collection. Ever since it was born, LISP
has been celebrated by practitioners as a genu-
ine high-level, functional- and meta-program-
ming language for potentially hard problems
involving symbol manipulation. Largely overlo-
oked is that LISP can also serve as a formalism
for theory of computation. Indeed, it embraces
and integrates ideas from all three major cha-
racterizations of computation, namely lambda
calculus, general recursive function, and Tu-
ring machine. Unfortunately, both LISP itself
and the formal basis distilled from it were not
well received for theory of computation. 50
years later, given prominent and promising
developments of the programming-language
approach to computability and complexity, it
is time to give McCarthy’s pioneering work a
reappraisal. We proceed as follows.
First, we review the development of
LISP.We start with McCarthy’s motivation for
designing a programming language for artifi-
cial intelligence, and the inspirations behind
the initial set of features: algebraic notation
and list processing. Of other language features
outlined in the 1st AI memo [7], we pay par-
ticular attention to two, namely conditional
expression and recursive function definition
(making use of the former), both later be-
coming the key components of McCarthy’s
“basis for a mathematical theory of compu-
tation” [12]. We note two revisions to the
language documented in two subsequent AI
memos – Memo 3 [8] introducing garbage
collection and refining list operations, Memo 4
[9] adopting Church’s -notation (to facilitate
higher-order functions) and naming the lan-
guage LISP (short for LISt Processor)–which
simplified it to such an extent that McCarthy
agilely realized its capability to describe com-
putable functions in a much neater way “than
the Turing machines or general recursive defi-
nitions used in [computable]1 function theo-
ry” [15, p.219]. We highlight McCarthy’s cast
of LISP “both as a programming language and
as a formalism for doing [computable] fun-
ction theory” [15, p.219] in the 8th AI memo
[10] (draft of the landmark paper [11]) where
he showed two similarities between LISP and
Turing machine: one shallow by simulating Tu-
ring machine in LISP, the other deep by giving
a universal function in LISP for LISP.
Second, we revisit McCarthy’s computa-
tion-theoretical basis [12] distilled from LISP
by parameterizing the computation domain.
We briefly mention some elementary results in
traditional theory of computation McCarthy
reproduced in the formalism obtained by in-
1 Following Soare’s recommendation [17], we
substitute the word computable for recursive in
the term recursive function theory.
pf3

Partial preview of the text

Download McCarthy's LISP and Basis for Theory of Computation and more Summaries Theory of Computation in PDF only on Docsity!

McCarthy’s LISP and Basis

for Theory of Computation

Hong-Yi Dai University of Edinburgh, UK It is well-known that LISP is an algebraic list- processing language designed for artificial in- telligence, dedicated to symbolic computation, powered by function orientation, enhanced by program manipulation, and underpinned by garbage collection. Ever since it was born, LISP has been celebrated by practitioners as a genu- ine high-level, functional- and meta-program- ming language for potentially hard problems involving symbol manipulation. Largely overlo- oked is that LISP can also serve as a formalism for theory of computation. Indeed, it embraces and integrates ideas from all three major cha- racterizations of computation, namely lambda calculus, general recursive function, and Tu- ring machine. Unfortunately, both LISP itself and the formal basis distilled from it were not well received for theory of computation. 50 years later, given prominent and promising developments of the programming-language approach to computability and complexity, it is time to give McCarthy’s pioneering work a reappraisal. We proceed as follows. First, we review the development of LISP. We start with McCarthy’s motivation for designing a programming language for artifi- cial intelligence, and the inspirations behind the initial set of features: algebraic notation and list processing. Of other language features outlined in the 1st^ AI memo [7], we pay par- ticular attention to two, namely conditional expression and recursive function definition (making use of the former), both later be- coming the key components of McCarthy’s “basis for a mathematical theory of compu- tation” [12]. We note two revisions to the language documented in two subsequent AI memos – Memo 3 [8] introducing garbage collection and refining list operations, Memo 4 [9] adopting Church’s -notation (to facilitate higher-order functions) and naming the lan- guage LISP (short for LISt Processor) – which simplified it to such an extent that McCarthy agilely realized its capability to describe com- putable functions in a much neater way “than the Turing machines or general recursive defi- nitions used in [computable]^1 function theo- ry” [15, p. 219]. We highlight McCarthy’s cast of LISP “both as a programming language and as a formalism for doing [computable] fun- ction theory” [15, p. 219] in the 8th^ AI memo [10] (draft of the landmark paper [11]) where he showed two similarities between LISP and Turing machine: one shallow by simulating Tu- ring machine in LISP, the other deep by giving a universal function in LISP for LISP. Second, we revisit McCarthy’s computa- tion-theoretical basis [12] distilled from LISP by parameterizing the computation domain. We briefly mention some elementary results in traditional theory of computation McCarthy reproduced in the formalism obtained by in- (^1) Following Soare’s recommendation [17], we substitute the word computable for recursive in the term recursive function theory.

Accepted abstracts stantiating the computation domain with the set of natural numbers. We also cover some formal properties of the basis that, as Mc- Carthy demonstrated, enable one to prove the equivalence of computations expressed in formalisms of various instantiations. We then turn to the unfortunate fact that, despite Mc- Carthy’s efforts, both LISP and its formal ba- sis were not well received for theory of com- putation, not by his students of theoretical background nor by other researchers of theo- retical expertise, a representative of the former group being Park [19], while one of the latter being Davis [1968]. We identify two reasons for the ill-reception: (1) LISP, focusing on the practical issue of briefly and straightforwardly expressing particular computable functions, “didn’t address the questions that interested [computable-function theorists]” [15, p. 219]; (2) despite some initial results, those theorists remained “unconvinced of the theoretical^2 uti- lity of any” of the formalisms [3]. However, we find inheritance of McCarthy’s metho- dology in work decades later [5, 18, 4] that (^2) Davis’ emphasis. approached computability and complexity via programming languages and that developed sufficiently far to confront Park, Davis and others. Moreover, we see the heritage further into current research and development of im- plicit computational complexity [6, 2]. Looking back, we notice that McCarthy’s discovery of LISP as a formalism for theory of computation might be somewhat accidental. However, we also sense a kind of necessity, owing to his position that “the question of whether there are limitations in principle of what problems man can make machines sol- ve for him as compared to his own ability to solve problems, really is a technical question in [computable] function theory” [13, p. 28]. This position, from nowadays point of view a misconception may it be, however, helped set- tle the design of LISP. Looking forward, we see that the programming-language approach to theory of computation McCarthy pioneered is shining again. Moreover, McCarthy’s hope for a relationship between computation and ma- thematical logic “as fruitful in [this] century as that between analysis and physics” [14, p. 69] is coming true.

Acknowledgment

We appreciate Herbert Stoyan’s donation of his Lisp archive to the Computer History Mu- seum [1]. We especially thank Paul McJones of the museum’s Software Preservation Group, for his dedicated efforts to preserve as many historical materials on Lisp [16], and also for his kind support of this work and constructive comments on this report.

References

[1] Computer History Museum (ed.), “The Herbert Stoyan Collection on LISP Programming”. Lot Num- ber X5687.2010, 2010. [2] U. Dal Lago, “A Short Introduction to Implicit Com- putational Complexity”, in N. Bezhanishvili, G. Va- lentin (eds.), Lectures on Logic and Computation , Lecture Notes in Computer Science 7388, Springer, 2012, pp. 89-109. [3] M. Davis, “Review: John McCarthy, a Basis for a Mathematical Theory of Computation, Preliminary Report; J: McCarthy, P. Braffort, D. Hirschberg, a Basis for a Mathematical Theory of Computation”.