目录
第Ⅰ部分 开端
第1章 我们是谁? 3
第Ⅱ部分 技术巨擘
第2章 巴贝奇:第一位计算机工程师 11
2.1 生平 11
2.2 数学用表 12
2.2.1 制表之道 12
2.2.2 有限差分法 14
2.3 巴贝奇的远见 17
2.4 差分机 18
2.5 机械的符号系统 19
2.6 派对魔术 20
2.7 差分机的终结 20
2.8 分析机 22
2.9 阿达:洛芙莱斯伯爵夫人 23
2.10 第一位程序员? 26
2.11 未竟之宏愿 27
2.12 结论 29
参考文献 29
第3章 希尔伯特、图灵与冯 · 诺伊曼: 第一代计算机架构师 31
3.1 大卫·希尔伯特 31
3.1.1 哥德尔 33
3.1.2 反犹主义风暴 35
3.2 约翰·冯·诺伊曼 36
3.3 艾伦·图灵 38
3.4 图灵-冯·诺伊曼架构 40
3.4.1 图灵的机器 40
3.4.2 冯·诺伊曼的历程 44
参考文献 49
第4章 格蕾丝 · 霍珀:第一位软件工程师 51
4.1 军旅生涯:1944年夏天 52
4.2 规范:1944—1945年 55
4.3 子程序:1944—1946年 58
4.4 研讨会:1947年 59
4.5 UNIVAC:1949—1951年 60
4.6 排序与编译器的起源 64
4.7 酗酒:大约1949年 64
4.8 编译器:1951—1952年 65
4.9 A类编译器 66
4.10 编程语言:1953—1956年 68
4.11 COBOL:1955—1960年 69
4.12 我对COBOL的吐槽 72
4.13 无可争议的成功 72
参考文献 73
第5章 约翰 · 巴克斯:第一种高级语言 75
5.1 生平 75
5.2 令人着迷的彩色灯光 76
5.3 快速编码与701计算机 78
5.4 对速度的需求 80
5.4.1 分工 84
5.4.2 我对FORTRAN的吐槽 85
5.5 算法语言(Algol)及其他 85
参考文献 87
第6章 艾兹格 · 迪杰斯特拉:第一位计算机科学家 89
6.1 生平 89
6.2 ARRA计算机:1952—1955年 91
6.3 ARMAC计算机:1955—1958年 94
6.4 ALGOL语言与X1计算机:1958—1962年 95
6.5 阴霾如墨渐漫:1962年 98
6.6 计算机科学的崛起:1963—1967年 99
6.6.1 科学性 100
6.6.2 信号量 100
6.6.3 结构化编程 101
6.6.4 数学证明的迷思 101
6.7 数学:1968年 102
6.8 结构化编程:1968年 104
参考文献 107
第7章 尼加德与达尔:第一种面向对象编程语言 109
7.1 克里斯滕·尼加德 109
7.2 奥莱-约翰·达尔 110
7.3 Simula语言与面向对象编程 111
参考文献 119
第8章 约翰 · 凯梅尼:第一种“大众化”编程语言——BASIC 121
8.1 约翰·凯梅尼的生平 121
8.2 托马斯·库尔茨的生平 123
8.3 革命性的想法 123
8.4 看似不可能的任务 124
8.5 BASIC语言 125
8.6 分时系统 126
8.7 操作计算机的青少年 127
8.8 转型 127
8.9 盲目先知 128
8.9.1 共生关系? 128
8.9.2 预言 129
8.10 雾里看花 132
参考文献 132
第9章 朱迪思 · 艾伦 133
9.1 ECP-18计算机 133
9.2 朱迪思的经历 134
9.3 辉煌的职业生涯 137
参考文献 138
第10章 汤普森、里奇与克尼汉 139
10.1 肯·汤普森 139
10.2 丹尼斯·里奇 141
10.3 布莱恩·克尼汉 144
10.3.1 Multics系统 145
10.3.2 PDP-7与《太空旅行》游戏 147
10.4 UNIX操作系统 149
10.5 PDP-11计算机 151
10.6 C语言 153
10.7 克尼汉和里奇 155
10.7.1 说服与合作 157
10.7.2 软件工具 157
参考文献 158
第Ⅲ部分 技术拐点
第11章 20世纪60年代 163
11.1 ECP-18 166
11.2 父亲的支持和鼓励 168
第12章 20世纪70年代 169
12.1 1969年 169
12.2 1970年 172
12.3 1973年 174
12.4 1974年 176
12.5 1976年 179
12.6 1978年 182
12.7 1979年 183
参考文献 184
第13章 20世纪80年代 185
13.1 1980年 185
13.1.1 系统管理员 186
13.1.2 pCCU 187
13.2 1981年 188
13.2.1 DLU/DRU 188
13.2.2 苹果Ⅱ 189
13.2.3 新产品 190
13.3 1982年 190
13.4 1983年 192
13.4.1 麦金塔内部剖析 192
13.4.2 电子公告板系统(BBS) 193
13.4.3 泰瑞达公司的C语言 193
13.5 1984—1986年:语音响应系统(VRS) 193
13.6 1986年 194
13.6.1 技工派遣系统(CDS) 195
13.6.2 字段标记数据(FLD) 195
13.6.3 有限状态机 196
13.6.4 面向对象编程(OOP) 196
13.7 1987—1988年:英国 197
参考文献 198
第14章 20世纪90年代 199
14.1 1989—1992年:克利尔通信公司 199
14.1.1 Usenet 200
14.1.2 Uncle Bob 200
14.2 1992年:C++ Report 201
14.3 1993年:Rational公司 201
14.4 1994年:教育考试服务中心(ETS) 203
14.4.1 C++ Report专栏 204
14.4.2 模式 204
14.5 1995—1996年:第一本书、会议、课程及OM公司 205
14.6 1997—1999年:C++ Report、统一建模语言(UML)和互联网泡沫 206
14.7 1999—2000年:极限编程 207
参考文献 209
第15章 千禧年 211
15.1 2000年:极限编程(XP)领导力 211
15.2 2001年:敏捷开发的兴起和互联网泡沫的破裂 212
15.3 2002—2008年:在困境中彷徨 213
15.4 2009年:《计算机程序的构造和解释》与色度键 214
15.4.1 视频 215
15.4.2 cleancoders.com 215
15.5 2010—2023年:视频、技艺与专业精神 216
15.5.1 敏捷开发偏离正轨 216
15.5.2 更多书籍 217
15.5.3 疫情期间 217
15.6 2023年:发展停滞期 217
参考文献 218
第IV部分 未来
第16章 编程语言 223
16.1 数据类型 224
16.2 Lisp 225
第17章 人工智能 227
17.1 人类大脑 227
17.2 神经网络 229
17.3 构建神经网络并非编程 230
17.4 大语言模型 230
17.5 大型X模型的影响 235
第18章 硬件 237
18.1 摩尔定律 238
18.1.1 多核 238
18.1.2 云计算 238
18.1.3 平台期 238
18.2 量子计算机 239
第19章 万维网 241
第20章 未来的编程 245
20.1 航空类比 245
20.2 设计原则 246
20.3 方法 246
20.4 规范 246
20.5 职业道德 247
参考文献 247
后记 249
术语表 257
其他重要人物名录 273