代碼的文明:編程語言如何改變世界

李楊

  • 出版商: 電子工業
  • 出版日期: 2026-03-01
  • 售價: $588
  • 語言: 簡體中文
  • 頁數: 562
  • ISBN: 7121523590
  • ISBN-13: 9787121523595
  • 相關分類: Functional-programming
  • 下單後立即進貨 (約4週~6週)

商品描述

從Fortran開啟編程先河,到今日的Python、C++、Go等語言百花齊放,本書帶領你踏上一場探索編程語言的文明之旅。本書註重內容廣度與深度,通過多個維度的比較分析,深入剖析了每種語言的獨設計哲學及其對軟件工程的影響。本書力求在故事、工程案例與技術細節之間取得平衡,通過對比分析揭示語言之間的傳承與分化,幫助讀者從"會用某種語言”提升到"理解語言背後的共性與原理”。此外,本書還註重內容的趣味性,通過豐富的彩人物故事、生動的實際案例、深入的技術分析,以及選的圖表和趣味配圖,展現編程語言演變的過程,以及它是如何改變的,讓讀者在輕松閱讀中洞悉編程語言的過去、和將來。本書既適合軟件工程師和相關業人員閱讀,用於拓寬技術視野和深化業知識;也適合計算機科學與技術業的學生和教師參考,作為教育和研究的閱讀資料;還適合對編程語言感興趣的業餘愛好者學習。無論你是剛入門的新手還是的技術實踐者,本書是增長技術積累和擴展技術視野的得力助手。

目錄大綱

第 1 章 編程語言概論.1
1.1 編程語言概論1
1.1.1 什麼是編程語言.1
1.1.2 編程語言的分類.2
1.1.3 編程語言與自然語言的區別.3
1.1.4 現段的編程語言.4
1.2 編程語言的基本元素 4
1.2.1 變量和類型.4
1.2.2 運算符和函數.9
1.2.3 控制流、塊和關鍵字.11
1.2.4 其他元素.14
1.2.5 Tab(制表符)和 Space(空格)的爭論.15
1.4 如何閱讀源代碼.18
1.5 編程思想和編程範式 19
1.5.1 過程式編程.20
1.5.2 結構化編程.21
1.5.3 函數式編程.23
1.5.4 面向對象編程.26
1.5.5 其他編程範式.28
1.6 編程語言設計要點.30
1.6.1 性能和性.30
1.6.2 靈活性和低心智負擔.36
1.6.3 正交性和實用性.38
1.7 編程語言的動態性.41
1.7.1 執行流的動態性.41
1.7.2 編譯時的動態性.42
1.7.3 運行時的動態性.45
1.8 值得一提的語言性 50
1.8.1 解釋與編譯.50
1.8.2 編譯器化.52
1.8.3 內存管理方式.53
1.8.4 模塊化.58
1.8.5 宏.60
1.8.6 泛型編程.61
1.8.7 處理異常和錯誤.62
1.8.8 同步、異步與並發.68
1.8.9 再聊異步.70
1.8.10 空.74
1.8.11 框架和編程語言.76
1.8.12 編程語言的生態.77
1.8.13 編程語言的面向場景.77
1.8.14 編程語言與中央處理器的 設計哲學.79
1.9 實現一種編程語言的要素81
1.10 接下來.83

第 2 章 1950—1959 年,編程語言的起源:從匯編語言到高級語言 .84
2.1 編程語言的史前時代 84
2.1.1 機械計算機的誕生.84
2.1.2 電子計算機的誕生.85
2.1.3 存儲程序概念的革新.86
2.2 時代背景和發展方向 87
2.3 FORTRAN 90
2.3.1 語言的作者和動機.90
2.3.2 語言的基本信息.91
2.3.3 語言的性和亮點.93
2.3.4 語言的發展和影響.95
2.3.5 點評.97
2.4 Lisp 98
2.4.1 語言的作者和動機.98
2.4.2 語言的基本信息.99
2.4.3 語言的性和亮點.100
2.4.4 語言的發展和影響.101
2.4.5 點評.103
2.5 ALGOL 103
2.5.1 語言的作者和動機.103
2.5.2 語言的基本信息.105
2.5.3 語言的性和亮點.106
2.5.4 語言的發展和影響.107
2.5.5 點評.109
2.6 COBOL 109
2.6.1 語言的作者和動機.109
2.6.2 語言的基本信息.110
2.6.3 語言的性和亮點.112
2.6.4 語言的發展和影響.114
2.6.5 點評.115
2.7 本時期其他重要的編程語言.116
2.7.1 Plankalkül116
2.7.2 IPL.117
2.8 小結.117

第 3 章 1960—1969 年編程語言設計的探索:奠定現代高級編程語言的基礎. 121
3.1 時代背景和發展方向 121
3.2 CPL 和 BCPL122
3.2.1 語言的作者和動機.122
3.2.2 語言的基本信息.122
3.2.3 語言的性和亮點.123
3.2.4 語言的發展和影響.124
3.2.5 點評.126
3.3 BASIC126
3.3.1 語言的作者和動機.126
3.3.2 語言的基本信息.128
3.3.3 語言的性和亮點.128
3.3.4 語言的發展和影響.129
3.3.5 點評.131
3.4 Simula132
3.4.1 語言的作者和動機.132
3.4.2 語言的基本信息.133
3.4.3 語言的性和亮點.135
3.4.4 語言發展和影響.136
3.4.5 點評.138
3.5 本時期其他重要的編程語言.139
3.5.1 APL139
3.5.2 PL/I140
3.5.3 ISWIM .142
3.5.4 shell .145
3.5.5 Logo .150
3.5.6 B 語言 .152
3.6 小結.153

第 4 章 1970—1979 年,語言的成熟期:重視動態性和編寫大規模工程應用. 155
4.1 時代背景和發展方向 155
4.2 Pascal.155
4.2.1 語言的作者和動機.155
4.2.2 語言的基本信息.157
4.2.3 語言的性和亮點.159
4.2.4 語言的發展和影響.160
4.2.5 點評.161
4.3 Smalltalk162
4.3.1 語言的作者和動機.162
4.3.2 語言的基本信息.163
4.3.3 語言的性和亮點.165
4.3.4 語言的發展和影響.167
4.3.5 點評.169
4.4 C 語言 .170
4.4.1 語言的作者和動機.170
4.4.2 語言的基本信息.172
4.4.3 語言的性和亮點.173
4.4.4 語言的發展和影響.175
4.4.5 點評.179
4.4.6 UNIX 設計哲學 180
4.5 ML182
4.5.1 語言的作者和動機.182
4.5.2 語言的基本信息.184
4.5.3 語言的性和亮點.186
4.5.4 語言的發展和影響.186
4.5.5 點評.187
4.6 Modula.188
4.6.1 語言的作者和動機.188
4.6.2 語言的基本信息.189
4.6.3 語言的性和亮點.190
4.6.4 語言的發展和影響.191
4.6.5 點評.192
4.7 本時期其他重要的編程語言.193
4.7.1 Prolog.193
4.7.2 SQL195
4.7.3 Scheme.196
4.7.4 Ada 199
4.8 小結.201

第 5 章 1980—1989 年,面向對象浪潮到來:不支持面向對象不好意思打招呼 . 203
5.1 時代背景和發展方向 203
5.2 Objective-C 203
5.2.1 語言的作者和動機.203
5.2.2 語言的基本信息.204
5.2.3 語言的性和亮點.207
5.2.4 語言的發展和影響.211
5.2.5 點評.212
5.3 C++ 213
5.3.1 語言的作者和動機.213
5.3.2 語言的基本信息.214
5.3.3 語言的性和亮點.217
5.3.4 語言的發展和影響.222
5.3.5 點評.235
5.4 Perl.244
5.4.1 語言的作者和動機.244
5.4.2 語言的基本信息.245
5.4.3 語言的性和亮點.246
5.4.4 語言的發展和影響.248
5.4.5 點評.250
5.5 本時期其他重要的編程語言.251
5.5.1 Erlang 251
5.5.2 ABC .253
5.5.3 Self 語言254
5.5.4 Command Prompt 命令提示符256
5.5.5 Bash shell 257
5.6 本章小結 259

第 6 章 1990—1999 年,編程語言第二次快速發展期:垃圾回收成標配,Web 應用需求大增加 . 261
6.1 時代背景和發展方向 261
6.2 Visual Basic 262
6.2.1 語言的作者和動機.262
6.2.2 語言的基本信息.262
6.2.3 語言的性和亮點.264
6.2.4 語言發展和影響.266
6.2.5 點評.268
6.3 Python269
6.3.1 語言的作者和動機.269
6.3.2 語言的基本信息.270
6.3.3 語言的性和亮點.273
6.3.4 語言的發展和影響.279
6.3.5 點評.283
6.4 數據分析語言285
6.4.1 SAS 285
6.4.2 MATLAB .285
6.4.3 R 語言.286
6.4.4 Julia .288
6.5 AI-first 編程語言288
6.6 Java 289
6.6.1 語言的作者和動機.289
6.6.2 語言的基本信息.290
6.6.3 語言的性和亮點.294
6.6.4 語言的發展和影響.296
6.6.5 點評.300
6.6.6 C、C++、Java 的對比303
6.7 Ruby.304
6.7.1 語言的作者和動機.304
6.7.2 語言的基本信息.305
6.7.3 語言的性和亮點.307
6.7.4 混入的.309
6.7.5 語言的發展和影響.312
6.7.6 點評.312
6.8 JavaScript 314
6.8.1 語言的作者和動機.314
6.8.2 語言的基本信息.315
6.8.3 語言的性和亮點.317
6.8.4 JavaScript 引擎320
6.8.5 語言的發展和影響.321
6.8.6 點評.325
6.8.7 前端技術發展的後續.329
6.9 本時期其他重要的編程語言.331
6.9.1 Haskell.331
6.9.2 Z shell ( Zsh ).335
6.9.3 Lua.336
6.9.4 PHP .340
6.9.5 OCaml343
6.9.6 Rebol .345
6.9.7 ActionScript.347
6.9.7 標記 / 配置語言349
6.9.8 惡搞編程語言.355
6.10 本章小結357

第 7 章 2000—2009 年,天下苦 C++ 久矣:函數式編程思想覆興,系統編程語言競爭激烈 360
7.1 時代背景和發展方向 360
7.2 JVM 語言:Groovy、Scala 和Clojure .361
7.2.1 JVM 語言 361
7.2.2 Scala 361
7.2.3 Groovy .364
7.2.4 Clojure .365
7.2.5 JVM 語言點評 367
7.3 C#.368
7.3.1 語言的作者和動機.368
7.3.2 語言的基本信息.369
7.3.3 語言的性和亮點.371
7.3.4 語言的發展和影響.379
7.3.5 點評.382
7.4 D 語言.383
7.4.1 語言的作者和動機.383
7.4.2 語言的基本信息.384
7.4.3 語言的性和亮點.387
7.4.4 語言的發展和影響.393
7.4.5 點評.395
7.5 Go .397
7.5.1 語言的作者和動機.397
7.5.2 語言的基本信息.399
7.5.3 語言的性和亮點.402
7.5.4 語言的發展和影響.407
7.5.5 點評.409
7.6 本時期其他重要的編程語言.411
7.6.1 PowerShell(shell 語言).411
7.6.2 易語言.415
7.6.3 少兒編程語言 Scratch416
7.7 本章小結 418
第 8 章 2010—2024 年,重視可讀性和性:提高語言的性,更適用於大型項目 420
8.1 時代背景和發展方向 420
8.2 Rust 421
8.2.1 語言的作者和動機.421
8.2.2 語言的基本信息.421
8.2.3 語言的性和亮點.424
8.2.4 Rust 所有權 430
8.2.5 Rust 所有權與函數式編程思想 433
8.2.6 Rust 宏 434
8.2.7 AI 與 Rust 結合 436
8.2.8 語言的發展和影響.438
8.2.9 點評.439
8.2.10 Rust 語言給行業帶來的思考 442
8.3 Kotlin .443
8.3.1 語言的作者和動機.443
8.3.2 語言的基本信息.444
8.3.3 語言的性和亮點.446
8.3.4 語言的發展和影響.450
8.3.5 點評.451
8.4 Dart 452
8.4.1 語言的作者和動機.452
8.4.2 語言的基本信息.453
8.4.3 語言的性和亮點.456
8.4.4 語言的發展和影響.459
8.4.5 點評.460
8.5 TypeScript .461
8.5.1 語言的作者和動機.461
8.5.2 語言的基本信息.462
8.5.3 語言的性和亮點.463
8.5.4 語言的發展和影響.465
8.5.5 點評.466
8.6 Swift .467
8.6.1 語言的作者和動機.467
8.6.2 語言的基本信息.469
8.6.3 語言的性和亮點.471
8.6.4 語言的發展和影響.477
8.6.5 點評.480
8.7 本時期其他重要的編程語言.482
8.7.1 Zig482
8.7.2 CppFront 編譯器.486
8.7.3 MoonBit .487
8.7.5 智能合約語言.490
8.8 本章小結 491
第 9 章 橫向點評 . 493
9.1 編程語言人格化.493
9.2 編程語言的流行程度 515
9.3 語言基本元素的語法變遷519
9.3.1 變量和類型:變量和常量定義語法的變遷.519
9.3.2 運算符和函數:函數定義語法的
變遷.521
9.3.3 控制流和關鍵字:循環結構語法的變遷.525
9.4 語法糖大觀園529
9.5 編程語言的生態.535
9.6 編程語言的同質化.537
9.6.1 語言的互轉換.537
9.6.2 語言差異的本質.538
9.7 編程語言先驅 539
第 10 章 結語 . 542
10.1 編程語言發展歷程的簡要回顧.542
10.2 推動編程語言發展的技術 .546
10.3 編程語言未來發展方向548
10.4 人工智能帶來的革命549
10.5 偉大的編程語言是 DNA 550
10.6 寫在後552