Historically relevant programs developed in LISP


LISP stands for List Processing. In this functional programming language, programs look like lists and can be treated as data (hence the name) 1. It was designed by John McCarthy (one of the official founders of the AI field) starting in 1958.

Many people know that LISP is historically a very important programming language in Artificial Intelligence. Even today, dialects of LISP are still being used in this context. For example, Clojush is a Clojure (which is a dialect of LISP) implementation of the Push programming language and the PushGP system, which are still being used to do research on genetic programming.

Many historically relevant programs were implemented in LISP in the early days of AI. Here’s a non-exhaustive list 2 3.

Name Author Source Year Brief description/comment
Symbolic Automatic INTegrator (SAINT) James R. Slagle [1] 1963 A symbolic integretation program
ANALOGY Thomas G. Evans [2] 1964 It solves geometric analogy problems
Semantic Information Retrieval (SIR) Bertram Raphael [3] 1964 A “machine understanding” program
QA3 C. Cordell Green (and Robert Yates) [4] 1969 A resolution-based deduction system, which was an attempt to improve on Raphael’s SIR; QA3 is the successor of QA2 and QA1
SEE Adolfo Guzman-Arenas [5] 1969 A program to segment a line drawing of a scene containing blocks into its constituents
DENDRAL Edward Feigenbaum, Joshua Lederberg, Bruce Buchanan, Carl Djerassi, and others [6], [7], [8] 1965- A project, expert system or series of programs to help chemists identify the structure of molecules given their mass spectra and other expert knowledge
Stanford Research Institute Problem Solver (STRIPS) Richard Fikes & Nils Nilsson [9] ~1970 A planning system used in the Shakey robot
SHRDLU Terry Winograd [10] 1971 A NLP dialog system, which was only partially written in LISP
MYCIN Edward (Ted) Shortliffe [11] ~1970 An expert system that would consult with physicians about bacterial infections and therapy; MYCYN is a common suffix for antibacterial [12]; the specific version of LISP used was BBN-LISP
Language Interface Facility with Elliptical and Recursive Features (LIFER) Gary Hendrix [13] 1976 A program to interact with databases in a subset of natural language (e.g. English); the specific version of LISP used was INTERLISP, a successor of BBN-LISP

In addition to these programs, many of the implementations of the conceptual structures by Roger C. Schank were in LISP [8].

Later, LISP was also used by John Koza in the context of GP (but this was already in the 90s). In 1998, NASA also developed in LISP Works the “Remote Agent” (RA), a robotic system for planning and executing spacecraft actions, in the context of Deep Space 1 [8].

If you are aware of any LISP program developed in the early days of AI (50s-90s) that is not mentioned above, you can share it with us in the comment section below and I will include it in the table above.

  1. I am not a LISP programmer, but 3-4 years ago I had implemented a simple plugin for Emacs in Emacs Lisp. 

  2. Most of these programs are mentioned in the book The Quest for Artificial Intelligence: A History of Ideas and Achievements, (2009) by Nils J. Nilsson, which I’ve been reading and enjoying. 

  3. Not all of these programs were fully implemented in LISP, and it’s possible that there also other implementations of these programs in other programming languages.