McCarthy defines Lisp

In April 1960 John McCarthy published “Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I” in Communications of the ACM, the paper that defined the Lisp programming language. McCarthy had coined the idea a few years after helping organize the 1956 Dartmouth workshop that named the field of artificial intelligence, and Lisp grew out of his work on systems that could reason with declarative knowledge rather than just compute numbers. The source cited here is the copy McCarthy hosted on his own Stanford pages.

Lisp, short for List Processor, was built to manipulate symbols and nested lists rather than just numbers, which suited the symbolic style of AI research in which knowledge is represented as structured expressions and reasoning is carried out by transforming them. The language drew on Alonzo Church’s lambda calculus for its handling of functions, made recursion the natural way to express computation, and treated program code and data as the same kind of object. McCarthy showed that a short function could interpret any Lisp expression, giving a definition of the language in terms of itself.

Lisp became the dominant language of artificial intelligence for the next thirty years, the vehicle for expert systems, knowledge representation, and the symbolic AI tradition more broadly. Its influence reached well past AI: ideas it popularized, including automatic memory management, the treatment of functions as ordinary values, and metaprogramming where code builds code, are now common across modern languages.

The honest qualification is that the 1960 paper set down a theoretical core rather than a finished system. The practical Lisp that programmers used was assembled by McCarthy’s group at MIT and by many later contributors, and the language splintered into numerous dialects over the years. But the conceptual seed, a small self-describing language for computing with symbols, was planted here.

Sources

Last verified June 6, 2026