Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman, with Julie Sussman, is a classic computer science textbook that focuses on the principles of programming and computational thinking. It uses the programming language Scheme (a dialect of Lisp) as a vehicle for teaching fundamental concepts. Although the book is extensive, here's an overview of its content:
1. Building Abstractions with Procedures:
- The Elements of Programming
- Procedures and the Processes They Generate
- Formulating Abstractions with Higher-Order Procedures
- Compound Data
- Symbolic Data
2. Building Abstractions with Data:
- Introduction to Data Abstraction
- Hierarchical Data and the Closure Property
- Symbolic Differentiation
- Symbolic Integration
3. Modularity, Objects, and State:
- Assignment and Local State
- The Environment Model of Evaluation
- Modeling with Mutable Data
- Concurrency: Time Is of the Essence
4. Metalinguistic Abstraction:
- The Metacircular Evaluator
- Variations on a Scheme -- Lazy Evaluation
- Variations on a Scheme -- Nondeterministic Computing
5. Computing with Register Machines:
- Designing Register Machines
- A Register-Machine Simulator
- Storage Allocation and Garbage Collection
Appendices:
- Appendix A: Building Systems from Standard Parts
- Appendix B: Formulating Abstractions with Macros
- Appendix C: The Essentials of Compilation
- Appendix D: Analyzing Programs
- Appendix E: Lisp In Lisp
The book emphasizes the importance of abstraction, modularity, and the art of programming. It covers a wide range of topics, from basic programming constructs to advanced techniques like metalinguistic abstraction and compiler design. Each chapter includes numerous exercises to reinforce the concepts and encourage hands-on practice.
Please note that the book is quite extensive and covers a lot more content than can be summarized here. This overview provides a general sense of the book's structure and topics covered.
No comments:
Post a Comment