第一章 火種 蒸汽動力時代的夢想

我希望蒸汽動力能夠進行各種數學計算。

——19世紀發明家查爾斯·巴比傑

個人計算機是剛剛過去的20世紀70年代中期問世的,然而它的起源卻可以追溯到50年代的巨型電子「計算裝置」,甚至早在19世紀的小說中就提出了「會思考的」機器的說法。難道機器真的能夠在程序的控制下進行思考嗎?對於一兩個世紀前的知識分子來說,這真是個大膽而令人驚嘆的設想。

英國詩人拜倫和雪萊非常關注科學技術給人類生活帶來的變化。在一個大雨滂沱的夏日,他們在瑞士談論起人造生命和人造思維的問題,他們想,能不能「人工製造人體的器官,將它們組裝在一起,並使之具備生命的活力。」雪萊的夫人瑪麗·雪萊根據他們談話的思路,在她的著名小說《弗蘭肯斯坦》中塑造了一個人造生命的怪物,向蒸汽時代的讀者展示了一個驚心動魄的寓言故事。19世紀早期引來了一個機械化時代,蒸汽機的發明是機械動力的主要標誌。正是在這個時候,蒸汽引擎首次裝上了輪子,到了1825年,英國第一條國營鐵路投入運營。當時的蒸汽動力與後來的電能和原子能具備的神奇力量的性質是相同的。1833年,英國數學家兼天文學家和發明家查爾斯·巴比傑提出了一個大膽的設想,他要利用蒸汽動力來進行數學計算,後來他真的設計出他聲稱能夠進行計算甚至能夠思考的機器,因此許多人將他視為實際生活中的弗蘭肯斯坦博士。雖然他的設計方案從未變成實際的產品,但是巴比傑決不是個想入非非的空想家。在他於1871年去世之前,一直憑藉他那最先進的邏輯思想和數學頭腦,致力於他所謂的「分析機」的研究。巴比傑試圖用這種機器使人們從重複性和煩瑣的腦力勞動中解放出來,就像當時的新型機器使人們擺脫繁重的體力勞動一樣。

拜倫的女兒奧古斯坦·艾達是巴比傑的同事和贊助人,她本人是位作家,又是個業餘數學家,她經常撰文向受過高等教育的人士和英國貴族中的科技贊助人介紹巴比傑的科學思想。她還編寫了許多能使巴比傑的分析機懂得如何解算數學問題的指令。由於她從事的這些工作,許多人將艾達稱為世界上的第一位計算機程序員。美國國防部根據她在提出計算機編程理論方面做出的重大貢獻,於20世紀80年代用她的名字命名了Ada編程語言。

由於公眾害怕瑪麗·雪萊在她的小說《弗蘭肯斯坦》中提到的那種神奇技術會給人類帶來什麼不測,因此艾達認為應該向小說的讀者說明巴比傑所說的分析機本身實際上並沒有思維能力。這種機器只能按照人的指令進行工作。儘管如此,分析機已經非常接近現代意義上真正的計算機,而「按照人的指令進行工作」則與我們今天所謂的計算機編程的概念十分相似。

巴比傑設計的分析機實際上是一台用鋼和銅製成的閃閃發亮的龐然大物,它工作時會發出巨大的聲響,而且造價極其昂貴。數字存儲在由齒輪組成的寄存器中,數字的輸入和移位是通過凸輪和棘輪裝置進行的。據說它最多能夠存儲1000個數字,每個數字最多為50位。這種內部存儲能力用今天的術語來說稱為計算機的內存容量。按照現代標準,分析機的運行速度實在太慢了,它每秒鐘進行加法運算的次數還不到一次,不過它擁有的內存卻比20世紀40年代和50年代最早的實用計算機大,甚至比70年代初最早的微型計算機的內存還要大。

雖然巴比傑為它的分析機設計了三個非常詳細的不同方案,但是他從來沒有造出過這樣的機器,也沒有製造過比較簡單然而功能更強大的差分機。一個多世紀以來,人們認為他當時的機械製造技術還無法製造出這種機器需要的成千上萬個精密零部件。後來到了1991年,倫敦科學博物館負責計算機設備的館長多倫·斯韋特使用巴比傑當年可以得到的技術、工藝和材料,成功地造出了巴比傑設計的差分機。斯韋特的成功是對巴比傑一生的巨大諷剌。一個世紀前,巴比傑已經成功地設計出計算機,他的機器實際上是能夠運行的,並且本來是能夠製造成功的。巴比傑未能實現其夢想的原因,完全是因為他無法籌措到足夠的資金,而無法籌措到資金,則主要是因為他的工作不合那些能夠提供資金的人的口味。

如果巴比傑對當時的權貴們採取迎合奉承的態度,或者拜倫的女兒是個腰纏萬貫的富家女子,那麼當時很可能出現一台規模龐大的蒸汽引擎計算機,在狄更斯筆下的倫敦噴雲吐霧,使現實生活中的某些吝嗇鬼的書籍相形見絀,或者與巴比傑的另一位著名朋友查爾斯·達爾文下國際象棋。可惜,正如瑪麗·雪萊所預言的那樣,電能將是實現會思考的機器的真正動力。

19世紀60年代,美國邏輯學家查爾斯·桑德斯·皮爾斯開始講授喬治·布爾著作的課程,布爾代數學就是以喬治·布爾的名字命名的。從此,皮爾斯就把符號邏輯學傳到了美國,並且在授課過程中大幅度修改和發展了布爾的代數學。布爾以無可爭議的方式將邏輯學與數學結合起來,而在19世紀中期,皮爾斯比其他任何人都更加精通布爾代數學。

到了19世紀80年代,皮爾斯發現布爾代數學可以用來模擬電氣開關電路。布爾邏輯學的真/假值與流經複雜電路的開/關電流完全吻合。換句話說,邏輯法則可以用電路來表示。因此,從理論上講,可以製造電動計算機和邏輯計算機。1885年,皮爾斯的學生艾倫·馬昆德實際上設計成功了能夠進行簡單邏輯運算的電動計算機,可惜沒有製造成功。

皮爾斯打算用來實現布爾代數運算的開關電路(也叫做開關裝置、開關元件或中繼元件,多個名字可以通用)是計算機的基本元件之一。這種裝置具備的獨特功能是它能夠對信息進行操作,而不是對電流或機車進行操作。

用開關電路來取代機械開關的好處很多,好處之一是可以大大縮小計算設備的體積。實際上,第一台電動邏輯計算機是本傑明·布拉克在1930年發明的一台攜帶型設備,它可以裝入一個公文包。這台機器能夠處理推理形式的語句。例如,假設「所有男人必有一死,索克雷茲是個男人」,因此它可以接受「索克雷茲必有一死」的推理,而拒絕「索克雷茲是個女人」的推理。這種錯誤推理會關閉電路,並使機器亮起報警指示燈,表示出現了邏輯推理錯誤。

布拉克的設備屬於一種專用計算機,其功能非常有限。當時製造的大多數專用計算設備只能進行數字處理,不能進行邏輯處理。幾十年前,特爾曼·霍勒利思設計了一台計算機,用於計算1890年美國人口普查的統計數字。他的公司後來被國際商業機器公司(IBM)兼并。到了1920年底,IBM通過向企業銷售專用計算機而大發其財,這些計算機使企業的例行數字計算實現了自動化。當時IBM的機器還稱不上是計算機,也不是布拉克製造的那種邏輯計算機,而只是體積龐大外觀漂亮的計算器而已。

美國麻省理工學院的克勞德·香農博士提出了一個理論,它說明了如何用電路來模擬布爾邏輯的方法。IBM公司的官員在這個理論的啟發下,於20世紀30年代投資開發一種採用機電繼電器的大型計算機。雖然他們後來放棄了這個開發計畫,但是IBM公司的官員為哈佛大學教授霍華德·艾肯提供了50萬美元,這在當時來說是一筆相當可觀的費用,用於開發Mark I。Mark I是受巴比傑的分析機的啟發而設計的一種計算設備。不過巴比傑設計的純粹是機械式計算器,而Mark I則是一種機電式計算器,它的繼電器用作開關部件,而繼電器陣列則作為數字存儲空間。計算器運行時雜訊很大,繼電器不停地接通和斷開,發出噼噼啪啪的聲響。當Mark I於1944年研製完成時,人們歡欣鼓舞,稱它使科學幻想小說中的電腦變成了現實。但是當Mark I亮相時,艾肯卻不承認IBM公司在該產品的研製工作中做出的貢獻,為此IBM公司的官員很不高興。更使IBM抱恨的是,在Mark I的研製工作開始之前,其他方面的技術取得了新的進展,從而使MarkⅠ在技術上已經過時了。

電氣技術的發展為電子設備的問世創造了條件。正當人們用繼電器取代了巴比傑的蒸汽驅動的車輪和齒輪的時候,依阿華州立大學的數學和物理學教授約翰·阿塔納索夫發現電子元件可以代替繼電器。在美國捲入第二次世界大戰前不久,阿塔納索夫在克利福德·貝里的幫助下設計出了阿塔納索夫-貝里計算機(ABC),它的開關部件採用的是電子管而不是繼電器。這種取代實現了一個重大的技術飛躍。從理論上講,電子管計算機的運算速度和運行效率比採用繼電器的計算機要高得多。與巴比傑的分析機一樣,ABC計算機也從未製造成功,原因也許是阿塔納索夫為製造該設備而籌得的經費還不足7000美元。阿塔納索夫和貝里組裝了一台簡單的樣機,它的線路錯綜複雜,使用了許多的電子管,與早期的台式計算器十分相似。由於採用電子管作為開關元件,

返回目录目錄+書簽下一頁