图书介绍

从规范出发的程序设计2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

从规范出发的程序设计
  • (美)Carroll Morgan著;裘宗燕译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111108477
  • 出版时间:2002
  • 标注页数:314页
  • 文件大小:10MB
  • 文件页数:327页
  • 主题词:程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

从规范出发的程序设计PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 程序和精化1

1.1 传统观点1

1.2 一种新观点1

1.3 程序作为契约:精化2

1.4 抽象程序3

1.5 可执行程序7

1.6 混合程序9

1.7 不可行程序9

1.8 一些常见习惯用法10

1.9 几个极端程序11

1.10 练习12

第2章 谓词演算15

2.1 相关性15

2.2 项16

2.3 简单公式16

2.4 命题公式17

2.5 量词18

2.6 (一般)公式20

2.7 运算符的优先级21

2.8 谓词演算22

2.9 练习24

3.2 赋值26

第3章 赋值和顺序复合26

3.1 引言26

3.3 开赋值28

3.4 skip 命令28

3.5 顺序复合29

3.6 赋值与复合的结合30

3 7 例:交换变量的值31

3.8 练习32

第4章 选择34

4.1 操作性描述34

4.2 精化法则35

4.3 练习37

第5章 迭代39

5.1 操作性描述39

5.2 精化法则:非形式的40

5.3 迭代的终止性:变动量41

5.4 迭代的精化法则43

5.5 迭代的“核查表”44

5.6 练习45

第6章 类型和声明48

6.1 类型48

6.2 声明50

6.3 局部块52

6.4 类型与不变式的使用54

6.5 关于可行性的最后注记55

6.6 类型和不变式的检查56

6.7 无定义表达式57

6.8 练习57

第7章 实例研究:平方根60

7.1 抽象程序:出发点60

7.2 除去“外来”运算符60

7.3 寻找不变式61

7.4 练习63

第8章 初始变量64

8.1 简单规范64

8.2 初始变量的精确化65

8.3 再看顺序复合66

8.4 先导赋值67

8.5 练习68

第9章 构造类型70

9.1 幂集70

9.2 包73

9.3 序列74

9.4 分配运算符78

9.5 函数80

9.6 关系83

9.7 练习86

第10章 实例研究:插入排序90

10.1 什么叫排序90

10.2 类似的前后条件90

10.3 减小变动量91

10.4 向上或向下迭代92

10.5 一个巧妙的不变式93

10.6 对序列赋值95

10.8 练习96

10.7 删除局部不变式96

第11章 过程和参数98

11.1 无参过程99

11.2 用值做替换101

11.3 带参数的过程102

11.4 对过程调用的精化103

11.5 多重替换107

11.6 值结果替换107

11.7 语法问题109

11.8 引用替换109

11.9 练习110

第12章 实例研究:堆排序112

12.1 代码的时间复杂性112

12.2 堆113

12.3 堆的收缩114

12.4 建堆115

12.5 过程Sift116

12.6 练习117

第13章 递归过程119

13.1 部分正确性119

13.2 递归的变动量121

13.3 一个完整例子122

13.4 跋:递归块123

13.5 练习125

第14章 实例研究:灰色编码127

14.1 灰色编码127

14.2 输入输出128

14.3 孤立的基础情况129

14.4 练习130

第15章 递归类型131

15.1 不相交并131

15.2 标志测式132

15.3 对选择的模式匹配133

15.4 类型声明136

15.5 递归类型137

15.6 结构序138

15.7 迭代中的模式匹配139

15.8 例子:树的求和141

15.9 练习145

第16章 模块和封装148

16.1 模块声明148

16.2 引出的和局部的过程149

16.3 模块的精化150

16.4 引入过程和变量151

16.5 定义模块与实现模块153

15.6 循环引出/引入154

16.7 代码中的初始式154

16.8 练习155

第17章 状态变换和数据精化156

17.1 我们还不能证明什么156

17.2 状态变换157

17.3 强制157

17.4 加入变量扩张158

17.5 删除辅助变量:收缩160

17.6 数据精化的一个实例163

17.7 函数式抽象166

17.8 练习171

第18章 实例研究:多数表决176

18.1 代码精化176

18.2 赢得选举177

18.3 直接开发得到平方型代码177

18.4 第二个尝试更快速180

18.5 代码变换181

18.6 简化的代码186

18.7 练习188

第19章 起源和总结189

第20章 实例研究:分段问题192

20.1 均匀分段192

20.2 最小损耗194

20.3 生成均匀分段197

20.4 练习199

第21章 实例研究:直方图的最大矩形201

21.1 做好基础性工作201

21.2 分治法202

21.3 强化不变式以恢复可行性204

21.4 引入递归205

21.6 练习207

21.5 包装207

第22章 实例研究:一个mail系统209

22.1 第一个规范210

22.2 标识符的重用212

22.3 第二个规范:重用215

22.4 第三个规范:延迟216

22.5 第一个开发:异步发送225

22.6 第二步开发:收条229

22.7 最后的开发步骤:打包231

22.8 练习234

23.2 谓词变换器238

第23章 语义238

23.1 引言238

23.3 语义定义239

附录A 谓词演算的一些法则247

A.1 一些命题法则247

A.2 一些谓词法则251

附录B 习题解答255

附录C 法则汇编285

参考文献298

索引300

热门推荐