Cover of Structure and Interpretation of Computer Programs, second edition by Harold Abelson, Gerald Jay Sussman - Business and Economics Book

From "Structure and Interpretation of Computer Programs, second edition"

Author: Harold Abelson, Gerald Jay Sussman
Publisher: MIT Press
Year: 1996
Category: Computers

🎧 Free Preview Complete

You've listened to your free 10-minute preview.
Sign up free to continue listening to the full summary.

🎧 Listen to Summary

Free 10-min Preview
0:00
Speed:
10:00 free remaining
Chapter 1: Building Abstractions with Procedures
Key Insight 2 from this chapter

The Lisp Programming Language: Design and Evolution

Key Insight

Lisp serves as an appropriate language for describing computational processes, similar to how natural languages express thoughts or mathematical notations describe phenomena. It originated in the late 1950s as a mathematical formalism for reasoning about recursion equations as a model for computation, based on seminal work published in 1960. Despite its theoretical inception, Lisp is a practical programming language; its first interpreter, which executes Lisp programs, was implemented at the MIT Research Laboratory of Electronics and the MIT Computation Center.

Lisp, an acronym for LISt Processing, was designed to provide powerful symbol-manipulating capabilities, addressing programming challenges such as symbolic differentiation and integration of algebraic expressions. For this purpose, it introduced new data objects like 'atoms' and 'lists', which significantly differentiated it from other languages of its era. Lisp's development was not a concerted design effort but an informal, experimental evolution driven by user needs and pragmatic implementation considerations. This ongoing evolution, combined with its flexible and elegant initial concept, has allowed Lisp to adapt to modern program design ideas, making it the second oldest language in widespread use, after Fortran. Today, Lisp is a family of dialects, with Scheme, invented in 1975, becoming an IEEE standard in 1990, and Common Lisp, developed to consolidate earlier dialects, becoming an ANSI standard in 1994.

Initially, Lisp was inefficient for numerical computations compared to Fortran due to its experimental character and emphasis on symbol manipulation. However, Lisp compilers have since advanced, translating programs into reasonably efficient machine code for numerical tasks. It has been used with great effectiveness in special applications, notably for a breakthrough computation of Solar System motion that extended previous results by nearly two orders of magnitude, revealing its chaotic dynamics. Although Lisp still faces its old reputation for inefficiency, it is now widely used in applications where efficiency is not the sole concern, such as operating-system shell languages and extension languages for editors and computer-aided design systems, primarily due to its unique capability to represent and manipulate procedures as data.

📚 Continue Your Learning Journey — No Payment Required

Access the complete Structure and Interpretation of Computer Programs, second edition summary with audio narration, key takeaways, and actionable insights from Harold Abelson, Gerald Jay Sussman.