Abstract
In 1974, a group at IBM Research began work on a new implementation of Lisp. Because the work was initially done for internal use only, many design decisions led the developers away from the more traditional Lisp paths. The most important design decision was to create a language which would have consistent semantics between compilation and interpretation. This paper takes a retrospective look at the decisions we made to see how they have stood up against the test of time and usage, especially when seen against the decisions made for Common Lisp. The Lisp language issues discussed include scoping, operator evaluation and consistency, and state saving. Compiler issues include the integration of assembly code into Lisp programs, our underlying formal semantics, and optimization. Our programming environment is as sophisticated as the majority of Lisp systems. Aiming at hardware such as the IBM 3270 terminals has affected the design of the tools that make up this environment. These issues will also be discussed.