第一章 绪论 1
1.1 关于程设计语言 1
1.2 程序设计语言的发展 3
第二章 值 6
2.1 值和类型 6
2.2 基本类型 7
2.3 复合类型 8
2.4 递归类型 18
2.5 类型系统 21
2.6 表达式 25
第三章 存储 30
3.1 变量和更新 30
3.2 复合变量 31
3.3 可存储值 35
3.4 生命期 35
3.5 命令 43
3.6 具有副作用的表达式 50
4.1 联结和环境 52
第四章 联结 52
4.2 可联结体 53
4.3 作用域 54
4.4 声明 57
4.5 块 64
第五章 抽象 67
5.1 抽象的种类 67
5.2 参数 72
5.3 求值的次序 76
第六章 封装 79
6.1 包 79
6.2 抽象类型 82
6.3 对象和类 85
6.4 类属 89
第七章 类型系统 96
7.1 单态 96
7.2 重载 98
7.3 多态 99
7.4 类型推理 105
7.5 强制 107
7.6 子类型的继承 108
第八章 顺序控制器 113
8.1 跳转 113
8.2 转出 116
8.3 异常 118
9.1 关于并发性的透视 122
第九章 并发性 122
9.2 程序与进程 123
9.3 并发性带来的问题 124
9.4 进程的交互作用 127
9.5 低给并发原语 128
9.6 结构化并发程序设计 136
第十章 命令式程序设计范例 143
10.1 命令式程序设计 143
10.2 实例研究: Pascal 144
10.3 实例研究: Ada 149
第十一章 并发式程序设计范例 157
11.1 Ada任务的回顾 157
11.2 再论死锁 160
11.3 “庄家”算法 163
第十二章 面向对象式程序设计范例 170
12.1 面向对象程序设计 170
12.2 实例研究——smalltalk 172
13.1 函数式程序设计 178
第十三章 函数式程序设计范例 178
14.2 实例研究——Prolog 189
13.2 语用学 192
第十四章 逻辑式程序调范例 196
14.1 逻辑化程序设计 196
第十五章 结论 207
15.1 语言的选择 207
15.2 语言的设计 212
15.3 语法 215