讀古今文學網 > 創新者:一群技術狂人和鬼才程序員如何改變世界 > 貝爾實驗室的克勞德·香農和喬治·斯蒂比茲 >

貝爾實驗室的克勞德·香農和喬治·斯蒂比茲

1937年還出現了另外一項意義重大的理論突破。與圖靈的成果類似,這項突破也只是一個思維實驗。麻省理工學院的研究生剋勞德·香農(Claude Shannon)在這一年提交了有史以來最具影響力的一篇碩士論文,《科學美國人》(Scientific American )雜誌後來更將其稱為「信息時代的大憲章」。13

香農在密歇根州的一個小鎮長大,他從小就喜歡製作飛機模型和業餘無線電,後來更進入密歇根大學攻讀電氣工程和數學專業。他在大四的時候應徵了一份貼在學校公告欄的招聘啟事,這份工作的內容是前往麻省理工學院幫助萬尼瓦爾·布什運作微分分析機。在得到這份工作之後,香農徹底被這台機器迷住了——跟組成模擬部件的轉軸和滑輪相比,更讓香農著迷的是控制電路中的電磁繼電器開關。這些開關可以根據電流信號接通和斷開,從而形成不同的電路形式。

1937年夏季,香農暫時離開了麻省理工學院,前往貝爾實驗室工作,這是一家由AT&T(美國電話電報公司)運營的研究機構。當時的貝爾實驗室位於曼哈頓哈德孫河畔的格林尼治村,它是一個可以將想法變成發明的搖籃。抽像的理論和實際的問題在這裡交匯;這裡的走廊上、餐廳裡聚集了許多偏執的理論家、親力親為的工程師、脾氣暴躁的機械師和高效的問題解決者,他們共同促進了理論和工程之間的交流。這點讓貝爾實驗室成為數字時代最為重要的創新支柱之一,哈佛大學的科學歷史學家彼得·蓋利森把它稱為「貿易區」(trading zone)。當這些實踐者和理論家聚在一起的時候,他們學會了如何找出一種共同語言來交換各自的想法和信息。14

在貝爾實驗室裡,香農親眼看到了電話系統電路的強大功能,這些電路會使用電子開關來安排通話線路和平衡通話負載。他開始在腦海中將這些電路的工作原理和另外一項自己感興趣的課題結合起來——英國數學家喬治·布爾在90年前制定的邏輯系統。布爾引入了使用符號和等式表達邏輯命題的方式,此舉使得邏輯學出現了顛覆性的變化。他將真命題設為數值1,假命題設為數值0,然後這些命題可以用於進行一系列的邏輯運算——例如「與」(and)、「或」(or)、「非」(not)、「或者……或者」(either/or)和「如果……則……」(if/then)——就像是數學方程一樣。

香農發現電路可以使用不同的通斷開關組合來執行這些邏輯運算。舉個例子,如果要實現一個「與」運算,可以將兩個開關串聯,這樣它們需要同時閉合才能接通電路;如果要實現一個「或」運算,可以將兩個開關並聯,這樣它們只需閉合其中一個就能接通電路。更為通用的邏輯開關被稱為邏輯門,它們可以簡化上面的流程。換句話說,你可以設計一個含有多個繼電器和邏輯門的電路,它可以按照步驟執行一系列的邏輯任務。

「繼電器」是一種利用電流控制通斷的開關,例如電磁繼電器。在開關時會發出響聲的繼電器有時會被稱為機電繼電器,因為它們含有活動的部件。真空管和晶體管也可以作為電路中的繼電器,它們被稱為電子繼電器,因為它們在控制電流的過程中無須移動電子元件。「邏輯門」是一種可以處理一個或多個輸入的開關。例如,在帶有兩個輸入的電路中,「與」門在兩個輸入均為高電平時才能輸出高電平,「或」門在其中一個輸入高電平時即可輸出高電平。香農的想法是這些邏輯門可以集成在電路當中,這樣就可以執行布爾邏輯代數的運算。

香農在同年秋季返回麻省理工學院。布什對香農的想法大為欣賞,並鼓勵他將這些內容加入自己的碩士論文當中。這篇題為《繼電器與開關電路的符號分析》的論文展示了執行布爾代數的各種運算的方法。「利用繼電器電路執行複雜的數學運算是可能的。」他在論文的結尾總結道。15 這篇論文成為所有數字計算機的基礎概念。

香農的想法也引起了圖靈的興趣,因為這跟他剛剛提出的通用型機器概念密切相關——圖靈機也可以使用簡單的二進制編碼指令解決數學和邏輯學的問題。而且由於邏輯學和人類大腦的推理方式有關,所以從理論上來說,一台可以執行邏輯任務的機器也可以模仿人類的思考方式。

數學家喬治·斯蒂比茲(George Stibitz)當時也在貝爾實驗室工作。他的職責是研究出新的計算方式,幫助電話工程師處理日益複雜的計算工作。斯蒂比茲當時可以使用的工具只有桌面機械加法機,於是他決定按照香農的想法發明一種更高效的計算工具,也就是利用電路執行數學和邏輯的運算。在11月的一天晚上,他從實驗室的倉庫中帶了一些用過的電磁繼電器和燈泡回家。他在廚房的桌子上將這些零件安裝到一個煙草罐子裡面,然後再連接幾個開關,這樣就做出了一個可以計算二進制加法的簡單邏輯電路。其中點亮的燈泡表示「1」,熄滅的燈泡表示「0」。他的妻子把它叫作「K模型」。他第二天向辦公室的同事展示了這個模型,並試圖讓他們相信只要有足夠多的繼電器,他就可以製造出一台計算機器。

貝爾實驗室的一個重要任務是研究如何放大遠距離傳輸的電話信號,同時排除信號傳輸過程中的靜電干擾。實驗室的工程師們會使用一些專門的公式來處理信號的波幅和相位,但是這些方程有時會求出帶有複數的解(複數是指含有表示負數平方根的虛數單位的數)。斯蒂比茲的主管問他這台機器能否處理複數,在得到了肯定的回答之後,這位主管安排了一支工程師團隊協助他完成製造。他們在1939年製成了這台機器,並把它命名為「複數計算器」。它含有超過400個繼電器,每個繼電器的開關頻率達到每秒20次。這點讓它的計算速度可以遠遠超過機械計算器,但是跟當時正在研發的全電子真空管電路相比,它又顯得過於臃腫。雖然斯蒂比茲的計算器不能進行編程,但它證明了繼電器電路可以用於處理二進制計算、信息和邏輯程序。16