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