20210722# 计算机程序的构造和解释
英文版目录
《Structure and Interpretation of Computer Programs》
- 1 Building Abstractions with Procedures
- 1.1 The Elements of Programming
- 1.1.1 Expressions
- 1.1.2 Naming and the Environment
- 1.1.3 Evaluating Combinations
- 1.1.4 Compound Procedures
- 1.1.5 The Substitution Model for Procedure Application
- 1.1.6 Conditional Expressions and Predicates
- 1.1.7 Example: Square Root by Newton's Method
- 1.1.8 Procedures as Black-Box Abstractions
- 1.2 Procedures and the Processes They Generate
- 1.3 Formulating Abstractions with Higher-Order Procedures
- 1.1 The Elements of Programming
- 2 Building Abstractions with Data
- 3 Modularity, Objects, and State
- 4 Metalinguistic Abstraction
- 5 Computing with Register Machines
中文版目录
《计算机程序的构造和解释》
- 出版者的话
- 专家指导委员会
- 序
- 第2版前言
- 第1版前言
- 致谢
- 第1章 构造过程抽象
- 1.1 程序设计的基本元素
- 1.1.1 表达式
- 1.1.2 命名和环境
- 1.1.3 组合式的求值
- 1.1.4 复合过程
- 1.1.5 过程应用的代换模型
- 1.1.6 条件表达式和谓词
- 1.1.7 实例:采用牛顿法求平方根
- 1.1.8 过程作为黑盒抽象
- 1.2 过程与它们所产生的计算
- 1.3 用高阶函数做抽象
- 1.1 程序设计的基本元素
- 第2章 构造数据抽象
- 第3章 模块化、对象和状态
- 第4章 元语言抽象
- 第5章 寄存器机器里的计算
- 参考文献
- 练习表
- 索引
序
For all its power,hte computer is a harsh taskmaster. It programs must be correct, and what we wish to say must be said accurately in every detail. As in every other symbolic activity, we become convinced of program truth through argument. Lisp itself can be assigned a semantics (another model, by the way), and if a program's function can be specified, say , in the predicate calculus, the proof methods of logic can be used to make an acceptable correctness argument.
第1章 构造过程抽象
1.1 程序设计的基本元素
the acts of the mind, wherein it exerts power over simple ideas , are chiefly these three :
- Combining several simple idea into one compound one, and thus all complex idea are made.
- The second is bringing two ideas, whether simple or complex , together, and setting them by one another so as to take a view of them at once, without uniting them into one, by which it gets all its ideas of relations.
- The third is separating them from all other ideas that accompany them in their real existence: this is called abstraction, and thus all its general idea are made.
---> John Locke, An Essay Concerning Human Understanding (1690)
We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.