第一章 程序设计方法学简介 1
1.1 程序设计方法学的产生 1
1.2 结构程序设计及其讨论的一些主要问题 3
习题 28
第二章 结构化程序 30
2.1 什么是结构化程序 30
2.2 结构化定理 36
2.3 一些新的控制结构 47
习题 58
第三章 模块化程序设计 60
3.1 模块化程序设计的基本思想 60
3.2 MODULA-2语言中的模块化结构 71
3.3 ADA语言中的程序包 78
习题 84
第四章 程序正确性证明 86
4.1 程序正确性证明简介 86
4.1 不变式断言法 89
4.3 子目标断言法 98
4.4 公理化方法 102
4.5 良序集方法 110
4.6 计数器方法 118
习题 121
第五章 结构化程序的正确性证明 126
5.1 正确性定理 126
5.2 证明程序正确性的代数方法 130
5.3 产生循环不变式的一种方法 142
习题 145
第六章 递归程序及其正确性证明 147
6.1 迭代与递归 147
6.2 递归程序的一种模型 148
6.3 递归程序的正确性证明 159
习题 168
第七章 程序的形式推导技术 170
7.1 谓词变换器及其性质 170
7.2 面向目标的程序推导 174
7.3 循环不变式的推导技术 192
习题 199
第八章 程序变换技术 201
8.1 程序变换的基本思想和基本规则 201
8.2 程序生成阶段 206
8.3 程序改进阶段(Ⅰ) 211
8.4 程序改进阶段(Ⅱ) 217
8.5 程序改进阶段(Ⅲ) 224
8.6 程序变换研究中的若干问题 228
习题 229
第九章 面向对象的程序设计方法 231
9.1 面向对象的程序设计方法的基本思想 231
9.2 SMALLTALK语言简介 241
习题 254
第十章 软件开发方法与工具简介 256
10.1 程序工具和软件开发环境 256
10.2 快速原型技术 260
参考文献 266