跳轉到

程式語言的歷史年表(科學史)#

程式語言是人類對機器下達指令的語言。從 1843 年 Ada Lovelace 為分析機寫下第一個程式,到 1950s FORTRAN/LISP 誕生、編譯器與解譯器技術成熟,再到 Python/JavaScript 與 AI 時代,程式語言史就是一部「如何讓人類思維與機器執行對接」的演化史。

本書以「推理探案」的方式,為每個歷史事件寫一篇 wiki,包含前因後果、理論與程式。每篇檔名以年份開頭。

目錄(Wiki 書篇目)#

第一幕:前史與誕生(1843–1958)#

年份 事件 Wiki
1843 Ada Lovelace 為 Babbage 分析機寫下伯努利數程式,史上第一個程式 1843-AdaLovelace第一個程式.md
1936 Turing 提出圖靈機,定義「可計算」的極限 1936-Turing圖靈機.md
1943 Plankalkül(Zuse)設計史上第一個高階語言(未實作) 1943-Plankalkul.md
1952 Grace Hopper 實作 A-0 編譯器,自動程式碼生成之始 1952-HopperA0編譯器.md
1957 FORTRAN 誕生,第一個廣泛使用的高階編譯語言 1957-FORTRAN.md
1958 LISP 誕生,S 表達式、遞迴、垃圾回收、Lambda 計算實作 1958-LISP.md

第二幕:語言爆炸與理論基礎(1958–1972)#

年份 事件 Wiki
1958 ALGOL 58/60:BNF 文法、區塊結構、遞迴程序,影響後世所有語言 1958-ALGOL.md
1959 COBOL:商業資料處理語言、英文式語法 1959-COBOL.md
1960 Lambda 演算與 Church-Rosser 定理成為函數式語言理論基石 1960-Lambda計算.md
1964 BASIC 誕生:分時系統上的解譯語言,程式教育大眾化 1964-BASIC.md
1967 Simula 67:類別與物件,物件導向程式設計之源 1967-Simula物件導向.md
1968 Dijkstra「GOTO 有害論」與結構化程式設計運動 1968-GOTO有害論.md
1970 Pascal 誕生:Wirth 為教學與編譯器示範設計的語言 1970-Pascal.md

第三幕:型別理論與抽象化(1972–1995)#

年份 事件 Wiki
1972 C 語言誕生:Unix 的系統程式語言、指標與手動記憶體 1972-C語言.md
1972 Prolog 誕生:邏輯程式設計、Horn 子句、合一演算法 1972-Prolog.md
1973 ML 誕生:Hindley-Milner 型別推導、多型 1973-ML型別推導.md
1977 Backus「能否擺脫 von Neumann 風格」演說與函數式倡議 1977-Backus函數式倡議.md
1980 Smalltalk-80 完成物件導向範式:訊息傳遞、影像式系統 1980-Smalltalk.md
1983 C++ 誕生:物件導向 + 系統程式、模板與泛型之源 1983-Cplusplus.md
1987 Perl 誕生:腳本語言與正則表達式、文字處理 1987-Perl.md
1990 Haskell 誕生:純函數式、惰性求值、型別類 1990-Haskell.md
1991 Python 誕生:可讀性優先、縮排語法、「 bateries included」 1991-Python.md
1995 JavaScript 十天誕生:原型繼承、瀏覽器語言 1995-JavaScript.md
1995 Java 誕生:VM、位元組碼、跨平台「寫一次到處跑」 1995-Java.md

第四幕:VM 時代、腳本革命與 AI 時代(1995–至今)#

年份 事件 Wiki
2000 C# 與 .NET 誕生:受管理執行環境、CLR 2000-Csharp與DotNet.md
2004 Scala 融合物件與函數式;JVM 上的多範式語言 2004-Scala.md
2009 Go 誕生:簡潔、goroutine 併發、編譯速度快 2009-Go.md
2010 Rust 誕生:所有權系統、無 GC 的記憶體安全 2010-Rust.md
2012 Swift(2014)與現代語言設計潮流:安全、表達力、工具鏈整合 2014-Swift.md
2016 WebAssembly 誕生:瀏覽器中的通用位元組碼 2016-WebAssembly.md
2020 AI 時代的程式語言:Copilot/LLM 自動程式生成、Python 主導 ML 2020-AI時代的程式語言.md

因果鏈總覽#

圖靈機 (1936) ── 可計算性理論 ── Lambda 計算 (1960) ── LISP (1958) ── 函數式語言
    │                                                              │
    │                                                              └─ Backus倡議 (1977) ── Haskell (1990) ── Scala (2004)
    │
    ├─ Plankalkül (1943) ── 高階語言概念 ── Hopper編譯器 (1952) ── FORTRAN (1957) ── ALGOL (1958)
    │                                                              │
    │                                                              ├─ COBOL (1959) ── 商業語言
    │                                                              └─ BASIC (1964) ── 解譯器/教育
    │
    ├─ ALGOL (1958) ── BNF文法/區塊結構 ── Pascal (1970) ── C (1972) ── C++ (1983) ── Java (1995) ── C# (2000)
    │                                        │                                    │
    │                                        └─ Simula (1967) ── Smalltalk (1980) │
    │                                                                             └─ Go (2009) / Rust (2010)
    │
    └─ 邏輯主義 ── Prolog (1972) ── AI 五代計畫

寫作方式說明#

每篇 wiki 採「推理探案」結構:

  1. 案發現場(前因):當時的未解之謎是什麼?誰遇到的?為何重要?
  2. 偵查過程(推理):設計者如何思考?關鍵靈感為何?核心技術(文法、編譯器、VM、型別系統)如何推導。
  3. 結案報告(後果):謎題如何解?留下什麼遺產?影響了哪些後續語言?
  4. 證據與工具:語言範例程式、編譯/解譯原理示意,以及 Python 模擬程式(如迷你解譯器)。