图书目录

目录

第Ⅰ部分 开端

第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