← New search

Other meanings of Interlisp

Programming language and development environment, 1960s–1980s

Interlisp

Interlisp was a Lisp programming language and interactive development environment created in the 1960s and widely used in artificial-intelligence research and software development through the 1980s. Its defining feature was not only symbolic programming, but an integrated workspace that supported incremental editing, debugging, compilation, documentation, and program inspection.

1960s
Origins
Developed from BBN-LISP
PDP-10
Early platform
A principal host computer
Interlisp-D
Later system
Lisp environment for Xerox workstations
1

Origins and language

Interlisp began as BBN-LISP, a Lisp system developed at Bolt, Beranek and Newman during the 1960s for research on symbolic computation and artificial intelligence.1 Warren Teitelman was a central figure in its development, and the system was later substantially extended and renamed Interlisp. Like other Lisp dialects, it represented programs and data with symbolic lists, treated functions as manipulable values, and supported interactive evaluation rather than requiring a separate edit–compile–run cycle.2

Its early implementations ran chiefly on PDP-10 computers, where Interlisp-10 became an important research system. The language included dynamic, interactive conventions that favored experimentation: programmers could redefine functions, inspect data structures, and resume computation after errors. This made it particularly suitable for exploratory work in artificial intelligence, where program structure and requirements often changed during development.

2

The integrated programming environment

Interlisp’s major contribution was an integrated programming environment that made development activities part of the language system itself. The environment combined a text editor, incremental compiler, file and version-management tools, debugger, documentation facilities, and mechanisms for examining relationships among functions.3

A notable feature was DWIM—“Do What I Mean”—which attempted to recognize and repair certain common typing or naming mistakes. Interlisp also provided break loops for interactive debugging, allowing a programmer to inspect or alter a computation at the point of failure. Tools such as Masterscope helped analyze function calls and dependencies, while the Programmer’s Assistant recorded useful context about definitions and edits. These facilities anticipated later integrated development environments, although they operated within a highly dynamic Lisp image rather than as separate modern applications.

3

Platforms, applications, and influence

Interlisp expanded beyond the PDP-10 into several implementation families, including Interlisp-VAX and Interlisp-D. The latter was associated with Xerox PARC’s workstation research and was adapted for machines in the Xerox 1100-series and related Lisp workstation line.4 On these systems, the programming environment was closely integrated with bitmap displays, windows, network services, and object-oriented interface tools.

Researchers used Interlisp for natural-language processing, knowledge representation, planning, expert systems, user-interface research, and computer-aided software engineering. Its environment encouraged large, persistent collections of definitions and interactive experimentation. Interlisp was not the only Lisp system of the period: Maclisp, Symbolics systems, and other dialects served overlapping communities. Its ideas nevertheless contributed to the broader history of interactive programming environments and influenced discussions surrounding portability, integrated tools, and later Lisp standardization.1

4

Lesser-known aspects

Interlisp’s lesser-known importance lies in how much software engineering support it supplied before such tools became standard desktop features. Its environment could preserve a working image containing code, data, editor state, and debugging information, so development often proceeded by modifying a live computation rather than rebuilding an application from source each time.3

The system also exposed tensions that later languages handled differently. Dynamic redefinition and permissive interaction accelerated exploration, but they could make reproducibility, dependency control, and deployment more difficult. Interlisp-D further demonstrated that a language environment could be designed together with specialized hardware and a graphical workstation, rather than merely ported to an existing operating system.4 The name therefore refers both to a Lisp dialect and to a distinctive style of software development: interactive, tool-rich, image-based, and oriented toward human-guided exploration.

Glossary

Lisp
A family of programming languages based on symbolic expressions, list processing, recursion, and treating programs as data.
DWIM
Interlisp’s “Do What I Mean” facility, designed to detect and correct some common interactive programming mistakes.
Interlisp-D
A version of Interlisp developed for Xerox Lisp workstations and their graphical, networked environments.
Break loop
An interactive debugging state in which a programmer can inspect or modify computation after an error or interruption.

Interlisp is discussed here as the historical Lisp language and development environment, not as a later product, compatibility layer, or unrelated use of the name.