猜你喜欢
编程原本

编程原本

书籍作者:亚历山大·斯特潘诺夫 ISBN:9787115493514
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2905
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书将严格的数学定义、公理化和演绎方法应用于程序设计,讨论程序与保证它们正确工作的抽象数学理论之间的联系。本书把理论的规程、基于这些规程写出的算法,以及描述算法性质的引理和定理一起呈现给读者,以帮助读者将复杂系统分解为一些具有特定行为的组件。
本书适合软件开发人员和需要进行程序设计的科学家及工程师阅读,也可供高等院校计算机及相关专业的师生参考。
作者简介
Alexander Stepanov 于1967 到1972 年间在国立莫斯科大学学习数学,从1972 年开始在苏联从事程序设计工作,1977 年移民美国后继续在这一领域工作。他编写过操作系统、程序设计工具、编译器和各种程序库。他在程序设计基础方面的工作先后得到GE、Brooklyn Polytechnic、AT&T、HP、SGI和Adobe 的支持。他在1995 年因C++ 标准模板库的设计获Dr. Dobb'sJournal 的程序设计杰出贡献奖。
Paul McJones 于1967 到1971 年间在加州大学伯克利分校学习工程数学,1967 年进入程序设计领域。他涉足的领域包括操作系统、程序设计环境、事务处理系统,以及企业和客户应用系统等。他先后在加州大学、IBM、Xerox、Tandem、DEC 和Adobe 工作。1982 年他与合作者一起因论文“The Recovery Manager of the System R Database Manager”获得ACM 程序设计系统和语言论文奖。
编辑推荐
1. 追溯数学原理,探求编程的本质,本书是“C++ STL之父”Alexander Stepanov的经典力作,得到了“C++ 之父”Bjarne Stroustrup的鼎力推荐。
2. 《编程原本》由我国知名的程序设计专家、北京大学数学学院教授裘宗燕老师再次修订,弥补了其中的不足。
3.读者可以从本书中一窥STL的设计思想,真切体会程序设计的迭代式过程,通过研究有用的问题,发现处理这些问题的高效算法。
目录
第1 章基础 1
1.1 理念范畴:实体、类别和类属 1
1.2 值 2
1.3 对象 4
1.4 过程 6
1.5 规范类型 7
1.6 规范过程 9
1.7 概念 11
1.8 总结 16
第2 章变换及其轨道 17
2.1 变换 17
2.2 轨道 21
2.3 碰撞点 23
2.4 轨道规模的度量 30
2.5 动作 31
2.6 总结 32
第3 章可结合运算 33
3.1 可结合性 33
3.2 计算乘幂 35
3.3 程序变换 37
3.4 处理特殊情况的过程 42
3.5 参数化算法 46
3.6 线性递归 47
3.7 累积过程 50
3.8 总结 51
第4 章线性序 52
4.1 关系的分类 52
4.2 全序和弱序 55
4.3 按序选取 56
4.4 自然全序 66
4.5 派生过程组 67
4.6 按序选取过程的扩展 68
4.7 总结 68
第5 章有序代数结构 69
5.1 基本代数结构 69
5.2 有序代数结构 75
5.3 求余 76
5.4 最大公因子 81
5.5 广义gcd 84
5.6 Stein gcd 87
5.7 商 87
5.8 负量的商和余数 89
5.9 概念及其模型 92
5.10 计算机整数类型 94
5.11 总结 95
第6 章迭代器 96
6.1 可读性 96
6.2 迭代器 97
6.3 范围 99
6.4 可读范围 103
6.5 递增的范围 112
6.6 前向迭代器 115
6.7 索引迭代器 120
6.8 双向迭代器 120
6.9 随机访问迭代器 122
6.10 总结 124
第7 章坐标结构 125
7.1 二叉坐标 125
7.2 双向二叉坐标 129
7.3 坐标结构 135
7.4 同构、等价和有序 136
7.5 总结 144
第8 章后继可变的坐标 145
8.1 链接迭代器 145
8.2 链接重整 146
8.3 链接重整的应用 153
8.4 链接的二叉坐标 157
8.5 总结 163
第9 章拷贝 164
9.1 可写性 164
9.2 基于位置的拷贝 166
9.3 基于谓词的拷贝 174
9.4 范围的交换 182
9.5 总结 186
第10 章重整 187
10.1 置换 187
10.2 重整 190
10.3 反转算法 192
10.4 轮换算法 196
10.5 算法选择 206
10.6 总结 210
第11 章划分和归并 211
11.1 划分 213
11.2 平衡的归约 218
11.3 归并 223
11.4 总结 230
第12 章复合对象 231
12.1 简单复合对象 231
12.2 动态序列 240
12.3 基础类型 246
12.4 总结 249
跋 250
附录A 数学表示 254
附录B 程序设计语言 256
B.1 语言定义 256
B.2 宏和特征结构 264
参考文献 267
索引 271