《计算机程序结构及其描述》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:袁淑君等译
  • 出 版 社:上海:上海交通大学出版社
  • 出版年份:1988
  • ISBN:7313001924
  • 页数:318 页
图书介绍:

目录 1

第一章 建立过程抽象 1

§1.1 程序设计要素 2

1.1.1 表达式 3

1.1.2 命名和环境 4

1.1.3 对组合的求值 5

1.1.4 复合过程 6

1.1.5 过程求值的替换模型 8

1.1.6 条件表达式和谓词 9

1.1.7 举例:用牛顿法求平方根 12

1.1.8 把过程作为“黑盒”抽象 14

§1.2 过程及其生成进程 17

1.2.1 线性递归和迭代 17

1.2.2 树递归 20

1.2.3 增长级 22

1.2.4 指数 23

1.2.5 最大公约数 25

1.2.6 例:素数测试 26

§1.3 建立高层过程抽象 30

1.3.1 把过程用作参数 30

1.3.2 使用Lambda构造过程 33

1.3.3 把过程用作一般方法 36

1.3.4 把过程作为返回值 40

第二章 建立数据抽象 43

§2.1 数据抽象介绍 44

2.1.1 例:有理数算术运算 45

2.1.2 抽象关卡 47

2.1.3 数据的含义 49

2.1.4 例:区间算术运算 50

§2.2 层次数据 53

2.2.1 表示序列 54

2.2.2 表示树 58

2.2.3 符号和引号 61

2.2.4 例:符号微商 63

2.2.5 例:表示集合 66

2.2.6 例: Huffman编码树 72

§2.3 抽象数据的多重表示方法 77

2.3.1 复数的表示 79

2.3.2 显类型 81

2.3.3 数据引导的程序设计 83

§2.4 带有类属操作符的系统 87

2.4.1 类属算术操作符 87

2.4.2 组合不同类型的运算对象 90

2.4.3 例:符号代数 94

第三章 模块性、对象和状态 103

§3.1 赋值与局部状态 103

3.1.1 局部状态变量 104

3.1.2 引入赋值的代价 108

3.1.3 引入赋值的益处 111

§3.2 求值的环境模型 113

3.2.1 求值规则 114

3.2.2 简单过程的求值 116

3.2.3 帧作为局部状态的保存场所 118

3.2.4 内部定义 121

§3.3 模拟可变数据 123

3.3.1 可变表列结构 124

3.3.2 队列的表示 129

3.3.3 表的表示 132

3.3.4 一个数字电路模拟器 136

3.3.5 约束的传播 144

§3.4 流 152

3.4.1 流作为标准接口 152

3.4.2 流的高层过程 155

3.4.3 流的实现 163

3.4.4 无限长的流 168

3.4.5 流与延迟求值 174

3.4.6 使用流模拟局部状态 181

第四章 元语言的抽象 185

§4.1 元循环求值器 186

4.1.1 求值器的核心 187

4.1.2 表示表达式 189

4.1.3 对环境的操作 192

4.1.4 把求值器当作LISP程序运行 195

4.1.5 把表达式当作程序处理 197

§4.2 Scheme的变异 199

4.2.1 良序求值 199

4.2.2 另一种约束原则 201

§4.3 程序包 205

4.3.1 用环境建立程序包 205

4.3.2 类属算术运算系统中的程序包 207

§4.4 逻辑程序设计 212

4.4.1 演绎推理信息检索 213

4.4.2 查询系统怎样工作 220

4.4.3 逻辑程序设计是数理逻辑吗 224

§4.5 实现查询系统 227

4.5.1 驱动器循环和例示 227

4.5.2 求值器 228

4.5.3 用模式匹配查找断言 231

4.5.4 规则和通代 232

4.5.5 维护数据库 235

4.5.6 实用过程 237

第五章 用寄存器机器进行计算 242

§5.1 设计寄存器机器 242

5.1.1 一种描述寄存器机器的语言 245

5.1.2 机器设计之抽象 248

5.1.3 子程序 250

5.1.4 用栈实现递归 253

5.1.5 寄存器机器模拟器 258

§5.2 显式控制求值器 267

5.2.1 显式控制求值器的核心 268

5.2.2 序列的求值和尾递归(最右递归) 272

5.2.3 条件式和其他特殊形式 274

5.2.4 运行求值器 276

5.2.5 内部定义 279

§5.3 编译 281

5.3.1 编译程序的结构 283

5.3.2 编译表达式 285

5.3.3 编译程序的数据结构 294

5.3.4 原始代码产生器 296

5.3.5 编译了的代码的一个例子 301

5.3.6 连接编译码与求值器 305

5.3.7 词法寻址 308

§5.4 存储分配及无用存贮单元的收集 311

5.4.1 作为向量的存贮器 312

5.4.2 维持无限存贮器的幻想 314