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

第一章 火種

我認為全世界也許只有5台個人計算機的市場。
——1943年IBM公司董事會主席托馬斯·沃森

蒸汽動力時代的夢想

19世紀60年代,美國邏輯學家查爾斯·桑德斯·皮爾斯開始講授喬治·布爾著作的課程,布爾代數學就是以喬治·布爾的名字命名的。從此,皮爾斯就把符號邏輯學傳到了美國,並且在授課過程中大幅度修改和發展了布爾的代數學。布爾以無可爭議的方式將邏輯學與數學結合起來,而在19世紀中期,皮爾斯比其他任何人都更加精通布爾代數學。
第二次世界大戰後出現了一個新興產業,那就是計算機製造業。由於計算機設備所具有的性質,它逐步形成了一個規模龐大的產業。約翰·莫奇萊和普里斯泊·埃奇特因為ENIAC的成功而春風得意,在他們的幫助下,雷明頓打字機公司變成了斯佩里·尤尼伐克(Sperry Univac)公司。幾年之內,「尤尼伐克」成了計算機的同義詞,就像Kleenex是面巾紙的同義詞一樣。斯佩里·尤尼伐克公司遇到了一些強勁的競爭對手。IBM公司的官員從Mark I的失望中重振旗鼓,著手製造通用計算機。兩家公司採用完全不同的經營風格,IBM的員工身穿藍條子服裝,而尤尼伐克公司的員工則大多是腳蹬輕便運動鞋的年輕大學生。不知是IBM在經營中的思路活躍還是經營中的遠見卓識,沒過多久,它就把尤尼伐克公司遠遠拋在了後面,一躍成為計算機行業的霸主。
用開關電路來取代機械開關的好處很多,好處之一是可以大大縮小計算設備的體積。實際上,第一台電動邏輯計算機是本傑明·布拉克在1930年發明的一台攜帶型設備,它可以裝入一個公文包。這台機器能夠處理推理形式的語句。例如,假設「所有男人必有一死,索克雷茲是個男人」,因此它可以接受「索克雷茲必有一死」的推理,而拒絕「索克雷茲是個女人」的推理。這種錯誤推理會關閉電路,並使機器亮起報警指示燈,表示出現了邏輯推理錯誤。
第二次世界大戰後,馮紐曼提出了將ENIAC改造成類似EDVAC的程式控制計算機的方法,而阿德爾·戈爾斯坦則編寫了55種操作的語言,使該計算機更加便於操作。此後,一直沒有人再以它的原始運行方式使用ENIAC。
巴比傑設計的分析機實際上是一台用鋼和銅製成的閃閃發亮的龐然大物,它工作時會發出巨大的聲響,而且造價極其昂貴。數字存儲在由齒輪組成的寄存器中,數字的輸入和移位是通過凸輪和棘輪裝置進行的。據說它最多能夠存儲1000個數字,每個數字最多九-九-藏-書為50位。這種內部存儲能力用今天的術語來說稱為計算機的內存容量。按照現代標準,分析機的運行速度實在太慢了,它每秒鐘進行加法運算的次數還不到一次,不過它擁有的內存卻比20世紀40年代和50年代最早的實用計算機大,甚至比70年代初最早的微型計算機的內存還要大。
——19世紀發明家查爾斯·巴比傑
後來,英國數學家艾倫·圖林提出了一種計算機思路,它能夠讀取編碼指令,以便執行任何可以描述的任務,並且能夠按照指令來完成該項任務。由於它能夠執行用指令描述的任何任務,因此這樣的計算機才稱得上真正的通用計算設備。圖林的思路在10年內變成了現實。指令變成了程序,他的思路經過另一位數學家約翰·馮紐曼之手,變成了通用的計算機。
電氣技術的發展為電子設備的問世創造了條件。正當人們用繼電器取代了巴比傑的蒸汽驅動的車輪和齒輪的時候,依阿華州立大學的數學和物理學教授約翰·阿塔納索夫發現電子元件可以代替繼電器。在美國捲入第二次世界大戰前不久,阿塔納索夫在克利福德·貝里的幫助下設計出了阿塔納索夫-貝里計算機(ABC),它的開關部件採用的是電子管而不是繼電器。這種取代實現了一個重大的技術飛躍。從理論上講,電子管計算機的運算速度和運行效率比採用繼電器的計算機要高得多。與巴比傑的分析機一樣,ABC計算機也從未製造成功,原因也許是阿塔納索夫為製造該設備而籌得的經費還不足7000美元。阿塔納索夫和貝里組裝了一台簡單的樣機,它的線路錯綜複雜,使用了許多的電子管,與早期的台式計算器十分相似。由於採用電子管作為開關元件,因此阿塔納索夫使計算機開發技術向前邁進了一大步。電子管的性能大大優於繼電器開關,因而使得計算機變成了現實。
雖然巴比傑為它的分析機設計了三個非常詳細的不同方案,但是他從來沒有造出過這樣的機器,也沒有製造過比較簡單然而功能更強大的差分機。一個多世紀以來,人們認為他當時的機械製造技術還無法製造出這種機器需要的成千上萬個精密零部件。後來到了1991年,倫敦科學博物館負責計算機設備的館長多倫·斯韋特使用巴比傑當年可以得到的技術、工藝和材料,成功地造出了巴比傑設計的差分機。斯韋特的成功是對巴九-九-藏-書比傑一生的巨大諷剌。一個世紀前,巴比傑已經成功地設計出計算機,他的機器實際上是能夠運行的,並且本來是能夠製造成功的。巴比傑未能實現其夢想的原因,完全是因為他無法籌措到足夠的資金,而無法籌措到資金,則主要是因為他的工作不合那些能夠提供資金的人的口味。
1946年初,ENIAC的研製工作完成時,它的運行速度比機電式計算機快1000倍。但是,不管它是否屬於電子計算機,它仍然會產生很大的雜訊。除了聲音較小的電子電路外,ENIAC配有滿滿一間屋子的打字機和不斷旋轉的磁帶機。它擁有2萬個開關元件,重量達30噸,耗電150千瓦。儘管ENIAC耗費如此大的電能,然而它每次只能處理20個10位數。不過,在ENIAC完成全部製造工作之前,它就已經派上了重要的用場。1945年,ENIAC為在新墨西哥州的洛斯阿拉莫斯進行的原子彈爆炸試驗進行了計算工作。
我希望蒸汽動力能夠進行各種數學計算。
到了19世紀80年代,皮爾斯發現布爾代數學可以用來模擬電氣開關電路。布爾邏輯學的真/假值與流經複雜電路的開/關電流完全吻合。換句話說,邏輯法則可以用電路來表示。因此,從理論上講,可以製造電動計算機和邏輯計算機。1885年,皮爾斯的學生艾倫·馬昆德實際上設計成功了能夠進行簡單邏輯運算的電動計算機,可惜沒有製造成功。
個人計算機是剛剛過去的20世紀70年代中期問世的,然而它的起源卻可以追溯到50年代的巨型電子「計算裝置」,甚至早在19世紀的小說中就提出了「會思考的」機器的說法。難道機器真的能夠在程序的控制下進行思考嗎?對於一兩個世紀前的知識分子來說,這真是個大胆而令人驚嘆的設想。
英國詩人拜倫和雪萊非常關注科學技術給人類生活帶來的變化。在一個大雨滂沱的夏日,他們在瑞士談論起人造生命和人造思維的問題,他們想,能不能「人工製造人體的器官,將它們組裝在一起,並使之具備生命的活力。」雪萊的夫人瑪麗·雪萊根據他們談話的思路,在她的著名小說《弗蘭肯斯坦》中塑造了一個人造生命的怪物,向蒸汽時代的讀者展示了一個驚心動魄的寓言故事。19世紀早期引來了一個機械化時代,蒸汽機的發明是機械動力的主要標誌。正是在這個時候,蒸汽引擎首次裝上了輪子,到九九藏書了1825年,英國第一條國營鐵路投入運營。當時的蒸汽動力與後來的電能和原子能具備的神奇力量的性質是相同的。1833年,英國數學家兼天文學家和發明家查爾斯·巴比傑提出了一個大胆的設想,他要利用蒸汽動力來進行數學計算,後來他真的設計出他聲稱能夠進行計算甚至能夠思考的機器,因此許多人將他視為實際生活中的弗蘭肯斯坦博士。雖然他的設計方案從未變成實際的產品,但是巴比傑決不是個想入非非的空想家。在他於1871年去世之前,一直憑藉他那最先進的邏輯思想和數學頭腦,致力於他所謂的「分析機」的研究。巴比傑試圖用這種機器使人們從重複性和煩瑣的腦力勞動中解放出來,就像當時的新型機器使人們擺脫繁重的體力勞動一樣。
用圖林·馮德曼的觀點來看,這些公司生產的計算機都屬於通用計算機,而且它們已經變得更加精巧,效能更高,功能更強。不久又出現了另一項技術突破,使計算機技術的發展跨上了一個新的台階。
美國麻省理工學院的克勞德·香農博士提出了一個理論,它說明了如何用電路來模擬布爾邏輯的方法。IBM公司的官員在這個理論的啟發下,於20世紀30年代投資開發一種採用機電繼電器的大型計算機。雖然他們後來放棄了這個開發計劃,但是IBM公司的官員為哈佛大學教授霍華德·艾肯提供了50萬美元,這在當時來說是一筆相當可觀的費用,用於開發Mark I。Mark I是受巴比傑的分析機的啟發而設計的一種計算設備。不過巴比傑設計的純粹是機械式計算器,而Mark I則是一種機電式計算器,它的繼電器用作開關部件,而繼電器陣列則作為數字存儲空間。計算器運行時雜訊很大,繼電器不停地接通和斷開,發出噼噼啪啪的聲響。當Mark I於1944年研製完成時,人們歡欣鼓舞,稱它使科學幻想小說中的電腦變成了現實。但是當Mark I亮相時,艾肯卻不承認IBM公司在該產品的研製工作中做出的貢獻,為此IBM公司的官員很不高興。更使IBM抱恨的是,在Mark I的研製工作開始之前,其他方面的技術取得了新的進展,從而使MarkⅠ在技術上已經過時了。
電子管是抽掉了空氣的玻璃管。愛迪生髮現在某些條件下電能夠在真空中傳播,李·德福雷斯特則運用「愛迪生效應」將電子管變成了電開關。20世紀50年代,從電視機到計算機,電子管在電子設備中的read.99csw.com應用非常廣泛。今天,我們仍然可以從計算機的顯示器和電視顯象管中看到電子管的影子。
由於公眾害怕瑪麗·雪萊在她的小說《弗蘭肯斯坦》中提到的那種神奇技術會給人類帶來什麼不測,因此艾達認為應該向小說的讀者說明巴比傑所說的分析機本身實際上並沒有思維能力。這種機器只能按照人的指令進行工作。儘管如此,分析機已經非常接近現代意義上真正的計算機,而「按照人的指令進行工作」則與我們今天所謂的計算機編程的概念十分相似。
如果巴比傑對當時的權貴們採取迎合奉承的態度,或者拜倫的女兒是個腰纏萬貫的富家女子,那麼當時很可能出現一台規模龐大的蒸汽引擎計算機,在狄更斯筆下的倫敦噴雲吐霧,使現實生活中的某些吝嗇鬼的書籍相形見絀,或者與巴比傑的另一位著名朋友查爾斯·達爾文下國際象棋。可惜,正如瑪麗·雪萊所預言的那樣,電能將是實現會思考的機器的真正動力。
布拉克的設備屬於一種專用計算機,其功能非常有限。當時製造的大多數專用計算設備只能進行數字處理,不能進行邏輯處理。幾十年前,特爾曼·霍勒利思設計了一台計算機,用於計算1890年美國人口普查的統計數字。他的公司後來被國際商業機器公司(IBM)兼并。到了1920年底,IBM通過向企業銷售專用計算機而大發其財,這些計算機使企業的例行數字計算實現了自動化。當時IBM的機器還稱不上是計算機,也不是布拉克製造的那種邏輯計算機,而只是體積龐大外觀漂亮的計算器而已。
與此同時,整個計算機市場的規模不斷擴大。新公司在經過IBM或尤尼伐克公司培訓的工程師的指導下不斷湧現。控制數據公司(Control Data)是從IBM中分離出來的一家公司,不久,霍尼韋爾(Honeywell)、伯勞斯(Burroughs)、通用電氣(General Electric)、RCA和NCR等公司紛紛開始生產計算機。10年之中,8家公司開始控制不斷擴大的計算機市場,而IBM則在營業額上領先於其他公司,這些公司常常被人們稱為白雪公主(IBM)和7個小矮人。不過IBM與另外7家公司吸取了某些自命不凡的暴發戶的教訓。20世紀60年代,出現了一種新型計算機,它們的體積更小,價格更便宜,與當時流行的超短裙一樣,它們被稱為微型計算機。生產微型計算機最主要的公司有波士頓的數字設備公司(九-九-藏-書DEC)和加州的帕洛阿爾托的惠普公司(HP)。
到了20世紀30年代,計算機的問世已經水到渠成。但是,計算機仍然是一種體積龐大、費用高昂的專用計算設備。後來又花了幾十年時間,才使它逐步縮小體積並且變得價格低廉,這時,它才走上了向通用計算機目標發展的軌道。
皮爾斯打算用來實現布爾代數運算的開關電路(也叫做開關裝置、開關元件或中繼元件,多個名字可以通用)是計算機的基本元件之一。這種裝置具備的獨特功能是它能夠對信息進行操作,而不是對電流或機車進行操作。
1943年,在費城的穆爾工程學院,約翰·莫奇萊和普里斯泊·埃克特提出了製造ENIAC計算機的建議,並且著手監造該設備。這是最早的一台全電子數字計算機。除了用於信息輸入和輸出的外部設備外,ENIAC純粹是一台電子管計算機,這也許是莫奇萊在拜訪約翰·阿塔納索夫時頭腦里產生的一個思路。莫奇萊和埃克特將許多學識淵博的數學家吸引過來,參与ENIAC項目的開發工作,包括約翰·馮紐曼。馮紐曼不僅參与了該項目的開發,對ENIAC計算機的製造做出了多方面的貢獻,而且提出了一種更為複雜的計算機EDVAC的設計輪廓。由於馮紐曼的努力,穆爾工程學院將工作的重點從技術領域轉向了計算機邏輯的研究上。他認為EDVAC不僅僅是個計算機設備,而且應該能夠執行邏輯操作和數學運算,同時能夠根據編碼符號來運行。根據符號進行運算的指令以及用於符號轉換的指令本身,應該是編碼後放入計算機的符號,並且是計算機運行時所依據的符號。這是現代計算機技術中最重要的一個基本概念。通過將EDVAC規定為應該用指令進行編程的計算機,而這些指令本身又作為數據送入計算機,馮紐曼建立了存儲程序計算機的技術標準。
不久之後,人們使用的大多數計算機都是IBM製造的產品,公司佔有的市場份額直線向上攀升。
拜倫的女兒奧古斯坦·艾達是巴比傑的同事和贊助人,她本人是位作家,又是個業餘數學家,她經常撰文向受過高等教育的人士和英國貴族中的科技贊助人介紹巴比傑的科學思想。她還編寫了許多能使巴比傑的分析機懂得如何解算數學問題的指令。由於她從事的這些工作,許多人將艾達稱為世界上的第一位計算機程序員。美國國防部根據她在提出計算機編程理論方面做出的重大貢獻,於20世紀80年代用她的名字命名了Ada編程語言。