第1章 引论 1
1.1 形式语义学 1
1.2 指称语义学 3
1.3 代数语义学 4
1.4 操作语义学 5
1.5 公理语义方法 5
1.6 形式说明语言 6
第2章 指称语义学基础 7
2.1 论域问题引子 7
2.2 域的构造 9
2.3 偏序与完全偏序 11
2.4 单调函数与连续函数 13
2.5 连续泛函 15
2.6 泛函不动点及递归程序 19
2.7 λ-抽象及λ-演算 33
2.8 指称语义定义初步 38
习题 42
参考文献 45
第3章 程序设计语言的指称语义 46
3.1 程序设计语言的基本概念 46
3.2 存储语义 50
3.3 环境(声明)语义 55
3.4 命令语义 61
3.5 表达式语义 64
3.6 连续 67
3.7 证明技术 79
3.8 小结 86
习题 87
参考文献 89
第4章 指称语义的一些例子 90
4.1 例子1 90
4.2 例子2 99
4.3 例子3 104
4.4 例子4 109
习题 114
参考文献 114
第5章 代数语义学基础 116
5.1 概述 116
5.2 范畴论 118
5.3 图范畴及图文法 144
5.4 类别代数理论 172
5.5 抽象数据类型 187
5.6 等式理论与项重写系统 194
5.7 实例 207
习题 231
参考文献 237
第6章 操作语义学与属性文法 239
6.1 操作语义概述 239
6.2 施用表达式(AE)的机器计算 243
6.3 属性文法概述 250
6.4 属性文法分类 256
6.5 用属性文法进行编译程序设计 274
6.6 属性文法定义语言 284
6.7 实例:AGDL的语法 287
习题 289
参考文献 289
第7章 组合逻辑 291
7.1 概述 291
7.2 组合子 296
7.3 组合逻辑的语法理论 303
7.4 组合逻辑的逻辑基础 310
7.5 函数性基本理论 313
7.6 范畴组合逻辑 318
7.7 小结 322
习题 323
参考文献 325
第8章 公理语义方法 326
8.1 概述 326
8.2 程序正确性验证的基本概念 327
8.3 程序正确性验证技术 331
8.4 Hoare公理系统 339
8.5 Dijkstra的最弱前置条件 344
8.6 Martin-L?f类型论 350
习题 371
参考文献 372
第9章 维也纳发展方法:Meta-Language 373
9.1 概况 373
9.2 在VDM中的逻辑注释 380
9.3 抽象数据类型 380
9.4 抽象文法 391
9.5 组合算子 392
9.6 VDM与程序设计语言 401
习题 417
参考文献 417
第10章 并发程序设计语言的语义与说明 418
10.1 并行系统概述 418
10.2 并发程序设计语言概述 419
10.3 幂域及不确定性 424
10.4 通讯顺序进程(CSP) 434
10.5 并发程序设计语言的指称语义 445
10.6 通讯顺序进程的操作语义 456
10.7 进程与通讯网络的抽象数据类型 467
10.8 并发程序设计语言的公理语义 480
习题 494
参考文献 495