计算机程序的构造和解释（原书第2版）
Publisher: 机械工业出版社
Published: 2019-7
Language: chi
Translated from: eng
Translation of: Structure and Interpretation of Computer Programs
Number of pages: 473
ISBN-13: 9787111630548
Description: 本书曾是美国麻省理工学院计算机科学专业的入门课程教材之一，从理论上讲解计算机程序的创建、执行和研究。主要内容包括：构造过程抽象，构造数据抽象，模块化、对象和状态，元语言抽象，寄存器机器里的计算等。
Table of contents: title: 出版者的话; title: 序; title: 第2版前言; title: 第1版前言; title: 致谢; title: 第1章 构造过程抽象1; title: 1.1 程序设计的基本元素3; title: 1.1.1 表达式3; title: 1.1.2 命名和环境5; title: 1.1.3 组合式的求值6; title: 1.1.4 复合过程7; title: 1.1.5 过程应用的代换模型9; title: 1.1.6 条件表达式和谓词11; title: 1.1.7 实例：采用牛顿法求平方根14; title: 1.1.8 过程作为黑箱抽象17; title: 1.2 过程及其产生的计算20; title: 1.2.1 线性的递归和迭代21; title: 1.2.2 树形递归24; title: 1.2.3 增长的阶28; title: 1.2.4 求幂29; title: 1.2.5 最大公约数32; title: 1.2.6 实例：素数检测33; title: 1.3 用高阶函数做抽象37; title: 1.3.1 过程作为参数37; title: 1.3.2 用lambda构造过程41; title: 1.3.3 过程作为一般性的方法44; title: 1.3.4 过程作为返回值48; title: 第2章 构造数据抽象53; title: 2.1 数据抽象导引55; title: 2.1.1 实例：有理数的算术运算55; title: 2.1.2 抽象屏障58; title: 2.1.3 数据意味着什么60; title: 2.1.4 扩展练习：区间算术62; title: 2.2 层次性数据和闭包性质65; title: 2.2.1 序列的表示66; title: 2.2.2 层次性结构72; title: 2.2.3 序列作为一种约定的界面76; title: 2.2.4 实例：一个图形语言86; title: 2.3 符号数据96; title: 2.3.1 引号96; title: 2.3.2 实例：符号求导99; title: 2.3.3 实例：集合的表示103; title: 2.3.4 实例：Huffman编码树109; title: 2.4 抽象数据的多重表示115; title: 2.4.1 复数的表示116; title: 2.4.2 带标志数据119; title: 2.4.3 数据导向的程序设计和可加性122; title: 2.5 带有通用型操作的系统128; title: 2.5.1 通用型算术运算129; title: 2.5.2 不同类型数据的组合132; title: 2.5.3 实例：符号代数138; title: 第3章 模块化、对象和状态149; title: 3.1 赋值和局部状态149; title: 3.1.1 局部状态变量150; title: 3.1.2 引进赋值带来的利益154; title: 3.1.3 引进赋值的代价157; title: 3.2 求值的环境模型162; title: 3.2.1 求值规则163; title: 3.2.2 简单过程的应用165; title: 3.2.3 将框架看作局部状态的展台167; title: 3.2.4 内部定义171; title: 3.3 用变动数据做模拟173; title: 3.3.1 变动的表结构173; title: 3.3.2 队列的表示180; title: 3.3.3 表格的表示183; title: 3.3.4 数字电路的模拟器188; title: 3.3.5 约束的传播198; title: 3.4 并发：时间是一个本质问题206; title: 3.4.1 并发系统中时间的性质207; title: 3.4.2 控制并发的机制210; title: 3.5 流220; title: 3.5.1 流作为延时的表220; title: 3.5.2 无穷流226; title: 3.5.3 流计算模式的使用232; title: 3.5.4 流和延时求值241; title: 3.5.5 函数式程序的模块化和对象的; title: 模块化245; title: 第4章 元语言抽象249; title: 4.1 元循环求值器251; title: 4.1.1 求值器的内核252; title: 4.1.2 表达式的表示255; title: 4.1.3 求值器数据结构260; title: 4.1.4 作为程序运行求值器264; title: 4.1.5 将数据作为程序266; title: 4.1.6 内部定义269; title: 4.1.7 将语法分析与执行分离273; title: 4.2 Scheme的变形—惰性求值276; title: 4.2.1 正则序和应用序277; title: 4.2.2 一个采用惰性求值的解释器278; title: 4.2.3 将流作为惰性的表284; title: 4.3 Scheme的变形—非确定性计算286; title: 4.3.1 amb和搜索287; title: 4.3.2 非确定性程序的实例290; title: 4.3.3 实现amb求值器296; title: 4.4 逻辑程序设计304; title: 4.4.1 演绎信息检索306; title: 4.4.2 查询系统如何工作315; title: 4.4.3 逻辑程序设计是数理逻辑吗321; title: 4.4.4 查询系统的实现324; title: 第5章 寄存器机器里的计算343; title: 5.1 寄存器机器的设计344; title: 5.1.1 一种描述寄存器机器的语言346; title: 5.1.2 机器设计的抽象348; title: 5.1.3 子程序351; title: 5.1.4 采用堆栈实现递归354; title: 5.1.5 指令总结358; title: 5.2 一个寄存器机器模拟器359; title: 5.2.1 机器模型360; title: 5.2.2 汇编程序364; title: 5.2.3 为指令生成执行过程366; title: 5.2.4 监视机器执行372; title: 5.3 存储分配和废料收集374; title: 5.3.1 将存储看作向量374; title: 5.3.2 维持一种无穷存储的假象378; title: 5.4 显式控制的求值器383; title: 5.4.1 显式控制求值器的内核384; title: 5.4.2 序列的求值和尾递归388; title: 5.4.3 条件、赋值和定义391; title: 5.4.4 求值器的运行393; title: 5.5 编译397; title: 5.5.1 编译器的结构399; title: 5.5.2 表达式的编译402; title: 5.5.3 组合式的编译407; title: 5.5.4 指令序列的组合412; title: 5.5.5 编译代码的实例415; title: 5.5.6 词法地址422; title: 5.5.7 编译代码与求值器的互连425; title: 参考文献431; title: 练习表437; title: 索引439