Interlisp Reference Manual
Original Publication Date: 1983-Oct-01
Included in the Prior Art Database: 2005-Sep-20
Software Patent Institute
Xerox Corporation: AUTHOR [+3]
Interlisp is a programming system. A programming system consists of a programming language, a large number of predefinedprograms (or functions, to use the Lisp terminology) that can be used either as direct user commands or as subroutines in user programs, and an environment that supports the programmer by providing a variety of specialized programming tools. The language and predefined functions of Interlisp are rich, but similar to those of other modern programming languages. The Interlisp programming environment, on the other hand, is very distinctive. Its most salient characteristic is an integrated set of programming tools which know enough about Interlisp programming so that they can act as semi-autonomous, intelligent ";assistants"; to the programmer. In addition, the environment provides a completely self-contained world for creating, debugging and maintaining Interlisp programs. This manual describes all three components of the Interlisp system. There are discussions about the content and structure of the language, about the pieces of the system that can be incorporated into user programs, and about the environment. The line between user code and the environment is thin and changing. Most users extend the environment with some special features of their own. Because Interlisp is so easily extended, the system has grown over time to incorporate many different ideas about effective and useful ways to program. This gradual accumulation over many years has resulted in a rich and diverse system. That is the reason this manual is so large. Whereas the rest of this manual describes the individual pieces of the Interlisp system, this chapter attempts to describe the whole system -- language, environment, tools, and the otherwise unstated philosophies that tie it all together. It is intended to give a global view of Interlisp to readers approaching it for the first time.
THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.
Copyright ©; 1983 Xerox Corporation. All rights reserved. Portions from ";Interlisp Reference Manual"; Copyright ©; 1974, 1975, 1978 Bolt, Beranek & Newman and Xerox Corporation. This publication may not be reproduced or transmitted in any form by any means, electronic, microfilm, xerography, or otherwise, or incorporated into any information retrieval system, without the written permission of Xerox Corporation.
Interlisp Reference Manual
October, Copyright © 1983 Xerox Corporation
All rights reserved.
Portions from "Interlisp Reference Manual" Copyright © 1974, 1975, 1978 Bolt, Beranek & Newman and Xerox Corporation
This publication may not be reproduced or transmitted in any form by any means, electronic, microfilm, xerography, or otherwise, or incorporated into any information retrieval system, without the written permission of Xerox Corporation.
BACKGROUND AND ACKNOWLEDGEMENTS
1 A BRIEF HISTORY OF INTERLISP
Interlisp began with an implementation of the Lisp programming language for the PDP-1 at Bolt,
Beranek and Newman in 1966. It was followed in 1967 by 940 Lisp, an upward compatible
implementation for the SDS-940 computer. 940 Lisp was the first Lisp system to demonstrate
the feasibility of using software paging techniques and a large virtual memory in conjunction
with a list- processing system [ Bobrow & Murphy, 1967 ] . 940 Lisp was patterned after the Lisp
1.5 implementation for CTSS at MIT, with several new facilities added to take advantage of its timeshared, on-line environment. DWIM, the Do-What-IMean error correction facility, was introduced into this system in 1968 by Warren Teitelman [ Teitelman, 1969 ] .
The SDS-940 computer was soon outgrown, and in 1970 BBN-Lisp, an upward compatible Lisp system for the PDP-10, was implemented under the Tenex operating system. With the hardware paging and 256K of virtual memory provided by Tenex, it was practical to provide more extensive and sophisticated user support facilities, and a library of such facilities began to evolve. In 1972, the name of the system was changed to Interlisp, and its development became a joint effort of the Xerox Palo Alto Research Center and Bolt, Beranek and Newman. The next few years saw a period of rapid growth and development of the language, the system and the user support facilities, including the record package, the file package, and Masterscope. This growth was paralleled by a corresponding increase in the size and diversity of the Interlisp user community.
In 1974, an implementation of Interlisp was begun for the Xerox Alto, an experimental microprogrammed personal computer [ Thacker et al., 1979 ] . AltoLisp [ Deutsch, 1973 ] introduced the idea of providing a specialized, microcoded instruction set that modelled the basic operations of Lisp more closely than a general-purpose instruction set could - and as such was the first true "Lisp machine". AltoLisp also served as a dep...