Lisp (LISt Processing) is the second-oldest high-level programming language still in common use, created by John McCarthy at MIT in 1958. It pioneered many ideas in computer science, including tree data structures, automatic memory management, dynamic typing, and recursion.
Origins
John McCarthy developed Lisp as a practical mathematical notation for computer programs, based on Alonzo Church’s lambda calculus. The first implementation was created by Steve Russell, who realized that McCarthy’s theoretical eval function could be implemented as an actual interpreter.
Key Innovations
Lisp introduced concepts that became fundamental to programming:
- Symbolic Expression (S-expressions): Code and data share the same representation
- Garbage Collection: First language to use automatic memory management
- Homoiconicity: Programs can manipulate their own source code as data
- REPL: Interactive read-eval-print loop for development
- Macros: Code that generates code at compile time
Dialects and Evolution
Lisp spawned numerous dialects over the decades:
- Common Lisp: Standardized industrial-strength dialect
- Scheme: Minimalist dialect emphasizing functional programming
- Clojure: Modern Lisp on the JVM with emphasis on immutability
- Emacs Lisp: Extension language for the Emacs editor
Impact on AI
Lisp was the dominant language for AI research for decades. Its flexibility made it ideal for symbolic computation, expert systems, and early natural language processing. The “AI winters” affected Lisp’s popularity, but the language’s ideas live on in modern programming.