Skip to content
📝 字数:working on

Structure and Interpretation of Computer Programs(2022 JavaScript Edition)

Estimated time to read: 2 minutes

Computer science is not about computers; it is the art of constructing computational mental models using abstraction to control complexity.

Why do we say SICP is the mental model of programmer

SICP explores the abstractions underlying computer programs—their models of computation. Starting with primitive functions and data, it shows how closure under combination allows us to construct increasingly complex processes and structures, while introducing the abstractions needed to manage that complexity.

So its deepest subject is not any particular language. It is:

How simple computational elements can be combined, abstracted and interpreted to construct complex models of processes.

In this sense, SICP teaches you to see programming languages as collections of computational primitives and composition rules, rather than merely as syntax.

Ordinary programmer VS. Advanced programmer

ordinary programmer=uses models implicitly through syntax

advanced programmer=recognizes, selects and combines models explicitly

Their advantage is not merely possessing “more complicated” models. It is having more appropriate models and knowing their boundaries.

What is Programming

Programming is the construction of precise descriptions of processes, is a intellectual laboratory for studying the construction, execution, composition, and revision of processes. A process is a rule-governed transformation of state through time.

Many intellectual disciplines can be understood as different ways of modelling, constraining, observing, and optimizing transformations through a state space.state-space dynamics under information, constraints, and objectives

What does this book explain?

Overall, SICP covers foundational concepts rather than advanced application-specific techniques. Using mathematics, logic and rigorous reasoning, it reconstructs how computational processes are built and executed. This provides an additional layer of abstraction for understanding programming—one that is largely independent of any particular domain, language or programming paradigm.

Its major contribution is adding a semantic layer between syntax and implementation.

MIT’s historical four-subject EECS common core

Number Subject Main focus
6.001 Structure and Interpretation of Computer Programs Programming, abstraction, interpreters, and computational processes
6.002 Circuits and Electronics Electrical circuits, transistors, amplifiers, and circuit dynamics
6.003 Signals and Systems Linear systems, signals, convolution, Fourier analysis, and transforms
6.004 Computation Structures Digital logic, computer architecture, processors, and memory systems

评论