Languages / Concept

1958

Lisp

Code is data. Data is code. 1958.

Lisp — LISt Processor — was designed by John McCarthy in 1958, making it the second-oldest high-level language still in use (Fortran just beats it). It grew out of the Lambda Calculus and a desire to do symbolic AI.

Its defining idea is homoiconicity: a Lisp program is written in the same nested-list structure that Lisp uses for data. (+ 1 2) is both a call and a list of three things. Because code is data, programs can build and transform programs — this is what macros really are.

Lisp also gave the world ideas we now take for granted: garbage collection, first-class functions, the read-eval-print loop, and conditionals as expressions. Its modern descendant in this vault is Clojure.

Sources

See also: Lambda Calculus, Clojure.