Languages / Concept
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
- McCarthy, “Recursive Functions of Symbolic Expressions and Their Computation by Machine” (1960) — the founding paper of Lisp.
See also: Lambda Calculus, Clojure.