1937年論文,克勞德·E·夏農正在準備畢業論文工作,主題是數字開關電路設計,
絕大多數碩士論文發出去後便無人問津論文,幾乎不會有人再對其研究,
但夏農這篇論文不僅成為計算機架構的基石論文,甚至開創了一門名為開關理論的新學科,
彼時數字計算機使用一種名為繼電器的磁性開關論文,這玩意看上去像個捕鼠器,一端裝有電磁鐵,
當電流流向磁鐵時,會吸引金屬條翻轉,從而開啟開關,一旦電流切斷,磁力消失,金屬條彈回,繼電器關閉論文。
問題在於如何設計繼電器陣列論文,使其能以正確順序開關,
這在當時異常困難,設計者需要考慮各種層次的變化,且只能依賴人力論文。
夏農偶然看到一本關於布林邏輯的教材論文,那一瞬間,靈感來襲,
以與(AND)、或(OR)、非(NOT)為基礎操作論文,布林已給出各種邏輯的函式方程,人類決策被簡化成一系列二元邏輯——是or否(yes or no)、真或假(true or false),
透過某種方式將這種二元邏輯對映到電路論文,豈不就能實現數字運算之目的?
夏農寫道:“數字可以由繼電器和步進開關的位置來表示,繼電器組之間的互連(interconnections)可以用來表示各種數學操作論文。”
在論文結尾,夏農展示瞭如何將一系列繼電器排列起來,以執行與(AND)、或(OR)操作,並將其連線以對兩個二進位制數進行加法論文。
除了簡單的加法運算論文,夏農還證明了布林電路可以對數字進行比較,只需藉助“If A, then B”之類的簡單指令就可以,
以布林邏輯為基礎,設計者可以對機器程式設計,使其在沒有人類指導情況下自發進行復雜運算論文。
21歲的夏農為什麼能取得開創學科級別的成果論文?難道他真的在這個年紀就積累了足以開闢學科的知識?
恐怕不是論文,夏農的貢獻在於首次將兩件事串在了一起:布林邏輯&設計二進位制邏輯電路,
布林已完成從日常決策到代數邏輯的等效處理論文,他在百年前推導的方程,便是將電開關連線以執行邏輯操作的路線圖,
而夏農將代數邏輯與電子元件的開關聯絡在一起論文,完成從日常決策→代數邏輯→元件開關這個鏈條的最後一環,
後來的計算機用電晶體取代了磁性繼電器,但二進位制開關的原理並未改變論文。
回顧這段歷史論文,我總有一種感覺,
布林邏輯就像是百年前無名高手寫下的九陽真經論文,藏在楞伽經夾縫裡,長久以來無人問津,
嶄新的時代對機器運算產生急迫需求論文,如何能將人類決策邏輯對映到電路中?
於是某個天才少年姍姍來遲,隨手將兩個看似毫不相關的東西聯絡在一起,解決了困擾人們多年的問題論文。