Book

Behind the Parentheses: The History of the LISP Programming Language

2025

Synopsis

Some programmers have joked that God used LISP to create the universe. Others have insisted that one must experience its elegance before leaving this world. Famous (or infamous) for its dense nests of parentheses, LISP inspires a reverence more often reserved for sacred texts.

LISP was primarily the creation of one man: John McCarthy, an uncompromising mathematician-turned-computer scientist who was often more concerned with the theoretical implications of his work than with its practical applications. McCarthy coined the term "artificial intelligence" and organized the first formal conference on the subject in 1956. But to bring his vision of AI to life in the form of the "advice taker," a system that could reason symbolically like a human, he needed a language capable of manipulating symbols and making logical inferences, not just crunching numbers. While FORTRAN (FORmula TRANslation) was the dominant programming language of the era, renowned for its numeric capabilities in scientific applications, it lacked the flexibility for robust list processing and symbolic manipulation that was required for AI. More fundamentally, FORTRAN didn't support recursion--that is, functions calling themselves--which McCarthy recognized as essential for performing deductive reasoning.

After unsuccessfully attempting to extend FORTRAN for list processing, as well as ruling out another language called IPL (Information Processing Language) that had achieved some early successes in AI research, McCarthy realized that a new approach was needed. So, he developed LISP, short for LISt Processing, a language designed around recursion, symbolic processing, and homoiconicity--the radical idea that code and data should be represented in the same way, enabling programs to modify themselves.

Behind the Parentheses traces LISP's critical development period from the mid-1950s to the mid-1960s, when the language was born, took shape, and matured. The book then documents the LISP family tree, tracing its evolution from the original LISP 1 through dialects like LISP 1.5, LISP 2, MacLisp, Interlisp, Scheme, and Common Lisp, to modern implementations such as Clojure. Each dialect reflects different technical and philosophical approaches, revealing how LISP's core innovations (for example, garbage collection, first-class functions, and metaprogramming) have been continually reimagined and reapplied across the generations.

At its heart, the birth and evolution of LISP is a story about mathematical ideas taken to their logical conclusion in code. To capture that story, author Mark Jones Lorenzo weaves a compelling historical mosaic, spiraling outward by revisiting key themes in a manner echoing the recursive nature of LISP itself. Though it includes technical details and example code, Behind the Parentheses is not a programming manual but a chronicle of technical achievement, packed with the stories of programmers who helped shape and refine LISP through its many incarnations. The book offers an intellectual journey into the minds of some of computing’s most brilliant pioneers, John McCarthy chief among them.

What was John McCarthy thinking, and when was he thinking it? How did LISP adapt and transform as computing itself evolved? Lorenzo answers these important questions, and many more, by taking you behind the parentheses (and between them) to reveal how a few powerful theoretical concepts not only made LISP the lingua franca of early artificial intelligence work but also forever transformed programming.

Suggested Reading

The Genius of Lisp

Journey through the fascinating story of Lisp: How it came about and why it was designed the way it was. Meet the geniuses involved in its creation, including Alonzo Church, Alan Turing, and the father of Lisp and artificial intelligence, John McCarthy. Lisp has informed the design of most programmi...

Abstracting Away the Machine: The History of the FORTRAN Programming Language

Over the past six decades, programming languages like ALGOL, BASIC, C/C++, COBOL, Java, LISP, LOGO, Pascal, PL/I, Python, Visual Basic, and many others opened up the field of computer science, and of computer programming in general, to the masses. But all of these high-level languages (HLLs)--comput...

We use cookies to improve your experience on our website. By continuing to browse, you accept our Cookie Policy and Privacy Policy.