The Lisp Experience

Harold Abelson, Matthew Halfant, JACOB KATZENELSON, Gerald Jay Sussman · Annual Review of Computer Science · 1988

This article exhibits programs that illustrate the power and simplicity of Lisp as a language for expressing the design and organization of com­ putational systems. Lisp, created in the late 1950s (McCarthy 1960), is, after FORTRAN, the oldest computer language in widespread use today. Despite its age, Lisp is still a modern language that continues to adapt to encompass the newest ideas in programming (Steele 1984). Over the past 30 years, Lisp has remained the language of choice for designing and prototyping complex programs, particularly in symbolic processing and artificial intelligence applications. Lisp's vitality is rooted in its power to express robust designs for com­ putational systems. A design for a system is robust if small changes in the system requirements can be accomplished by small changes in the design. One way to enhance the robustness of a design is to express it in terms of a natural representation of the problem domain, where each relevant entity in the problem domain is modeled by a computational entity and each relation or operation in the problem domain is modeled by a computational relation or function. With such an organization, small changes in the configuration of the problem domain can be accommodated by small changes in the configuration of the computational model. For a programming language to support such natural representations, it must allow programmers the freedom to construct appropriate com­ putational abstractions to represent the elements of problem domains. Lisp provides this freedom in two essential ways. First, Lisp does not limit procedural abstraction by placing arbitrary restrictions on passing procedures as arguments, returning procedures as values, and including

Read the paper · More papers on PaperTik