跳轉到

1967 Maurice Wilkes —— EDSAC:第一台會「自己思考」的機器#

「誰建造了世界上第一台內建程式的電腦?答案不是 ENIAC 團隊, 而是劍橋一位改行的高頻電波學者。」

案件檔案#

項目 內容
得主 Maurice V. Wilkes (1913–2010)
得獎理由 EDSAC 的設計與建造(1949 年運轉),以及圖書館式軟體工程概念
關鍵詞 EDSAC、微程式設計、子程式庫

前因#

ENIAC(1945)改程式要重接線路,如同一座需要重新焊接的巨大電話交換機。 1946 年 von Neumann 的 EDVAC 報告提出「把程式也存進記憶體」,但那只是紙上 架構。誰能把藍圖變成會運轉的實體機?

線索與推理#

  1. 1946 年 Moore School 暑期講習:Wilkes 聽完講座回劍橋,憑一份 草圖式筆記(據說在船上才讀完)決心建機。
  2. 1949 年 5 月 EDSAC 運轉:第一個程式算出 0² 到 99² 的平方表。 EDSAC 是第一台常態運轉的儲存程式電腦(曼徹斯特 Baby 更早閃光, 但 EDSAC 首先投入實用)。
  3. 1951 年 Wilkes 提出「程式庫」:把常用子程式存於紙帶,附上單行 規格說明——這是API 文件與軟體重用的發源。他自述此靈感 「如恩賜的頓悟」(gift by a flash of enlightenment)。
  4. 微程式設計(1951–1953):Wilkes 把指令的執行拆成更小的 微指令序列,存於只讀記憶體(當年用二極體矩陣):
機器指令 ADD  →  取運算元、送 ALU、寫回  →  由微指令序列實作
微指令 = 一行控制位元(某位元開/關某條控制線)

這使同一 CPU 架構可以用不同微碼實作不同指令集——今日 x86 內部 仍是微碼機器。

理論核心#

Wilkes 的洞見是層次化抽象:

高階程式 → 編譯器 → 機器指令 → 微程式 → 邏輯閘

每一層只需對上層提供介面契約。這與 Dijkstra(1972 案)的分層系統、 Liskov 的資料抽象(2008 案)一脈相承。

後果#

  • EDSAC 後繼機 LEO 直接用於 J. Lyons 茶葉公司的商業結帳——電腦從 軍事科學走進商業。
  • 「軟體工程」一詞的根基:Wilkes 證明程式可以像圖書館藏書一樣 被編目、借閱、重用。
  • 他晚年名句:「我在 1949 年 5 月意識到,我此生餘年都得為程式的 除錯而活。」——最早的軟體工程警示錄。

關聯案件#

→ 1966-Alan-Perlis與高階程式設計及編譯器、1999-Frederick-Brooks與System360及軟體工程、2009-Charles-Thacker