邁克爾·斯韋因 保羅·弗賴伯格 陳少蕓 成小雷 朱少榮

詩人拜倫和雪萊注意到了科學所帶來的變化。在一個大雨傾盆的夏日,他們倆在瑞士消磨時光,就這樣討論起人工生命和人工思維,思考著是否能“制造出某個生物的各個零件,將它們拼湊起來并賦予其體溫”。當時在現(xiàn)場的雪萊夫人瑪麗·雪萊記住了這場討論,并在自己后來著名的小說《弗蘭肯斯坦》中展開了這一主題。對蒸汽時代的讀者來說,瑪麗·雪萊筆下的科學怪人實在令人毛骨悚然。
“蒸汽朋克”計算機
1833年,英國數(shù)學家、天文學家及發(fā)明家查爾斯·巴貝奇談起用蒸汽驅(qū)動計算,并真的開始設(shè)計這么一臺機器。巴貝奇聲稱,這機器若是做出來,可將計算行為機械化,甚至將思維機械化。
巴貝奇有一位搞科學編年史的同事,同時是他的贊助人,叫奧古斯塔·艾達·拜倫。她是詩人拜倫勛爵的女兒。艾達·拜倫本身既是一名作家,又是一名業(yè)余數(shù)學家。因此,她能夠通過文章和論文向受過高等教育的公眾和英國貴族中的潛在贊助人解釋巴貝奇的想法。此外,她還撰寫了不少文章來介紹巴貝奇的分析機是如何解決高等數(shù)學問題的。因為艾達·拜倫所做的這些工作,許多人視她為世界上第一位計算機程序員。20世紀80年代初,美國國防部用她的名字命名了Ada編程語言,以此肯定艾達在計算機編程方面的貢獻。
從巴貝奇的設(shè)計來看,分析機是一臺體型巨大、噪聲不小、昂貴無比、外觀漂亮且因用了黃銅和鋼鐵制造而閃閃發(fā)光的大家伙。數(shù)字存儲于由齒輪構(gòu)成的暫存器上,而數(shù)字的加法和轉(zhuǎn)存則通過凸輪和棘輪的運行來完成。根據(jù)設(shè)計,分析機可以存儲1000個數(shù)字,每個數(shù)字最多50位數(shù)。內(nèi)置存儲器容量如今被稱為機器的內(nèi)存大小。按如今的標準來說,巴貝奇分析機的運行速度可以說是龜速——1秒內(nèi)都無法完成一個加法運算,但實際上它的內(nèi)存比20世紀四五十年代的第一批可用的計算機以及20世紀70年代的早期微型計算機都要大。
盡管巴貝奇為分析機設(shè)計了3種詳盡的方案,但他始終未能造出這臺機器。1991年,倫敦科學博物館負責計算的資深館長多倫·斯沃德用巴貝奇時代擁有的技術(shù)、工藝和材料造出了巴貝奇的差分機。斯沃德的成功揭示了巴貝奇人生中具有諷刺意味的一面。早在別人做出同樣嘗試的100多年前,巴貝奇就已經(jīng)成功設(shè)計出了一臺計算機,但他之所以無法實現(xiàn)自己的夢想,全是因為他無法籌集到足夠的資金,而這又多半緣于他自己疏離于那些能提供資金的人。
如果巴貝奇能圓滑一些或奧古斯塔·艾達·拜倫更富有一些,恐怕就會有這么一臺無比巨大的蒸汽計算機在狄更斯筆下的倫敦出現(xiàn),幫助現(xiàn)實生活中的一些老吝嗇鬼算賬,也可能蒸汽計算機會與查爾斯·達爾文下一盤國際象棋。但正如瑪麗·雪萊所預言的一樣,要想制造出會思考的機器,關(guān)鍵是電力。
會計算的機器
美國邏輯學家查爾斯·皮爾斯通過講授英國數(shù)學家喬治·布爾的著作,將符號邏輯學從大西洋彼岸帶到了美國。在這個過程中,皮爾斯從根本上重新定義并極大豐富了布爾代數(shù)。布爾以無可爭議的方式將邏輯與數(shù)學整合到了一起,而皮爾斯大概是19世紀中期最了解布爾代數(shù)的人了。
到了19世紀80年代,皮爾斯發(fā)現(xiàn),布爾代數(shù)可用于模擬電氣開關(guān)電路。布爾邏輯的真/假完全映射了電流流經(jīng)復雜電路中開/關(guān)的方式,換句話說,邏輯可以用電路來表示。這就意味著電力驅(qū)動的計算機和邏輯機是可以構(gòu)造出來的。它們不只是小說家的空想,它們可能會實現(xiàn),而且最終定會實現(xiàn)。
皮爾斯有一名叫艾倫·馬昆德的學生,他在1885年還真的設(shè)計出了一臺能夠進行簡單邏輯運算的電力邏輯機,但是還是沒有造出來。皮爾斯用來解釋如何模擬布爾代數(shù)的開關(guān)電路是計算機的一個基本組成部分。這個裝置的獨特之處在于能夠管理信息,這一點和電流或機車完全不同。
機械開關(guān)為電回路所替代,使得計算設(shè)備的體積可以變得更小。事實上,第一臺電力邏輯機是由本杰明·布拉克設(shè)計并制造出來的便攜式裝置,體積小到可以裝進公文包中。這臺制造于1936年的布拉克邏輯機可用于處理三段論形式的邏輯語句。譬如說,將“男人終有一死;蘇格拉底是男人”編入機器,邏輯機可接受“蘇格拉底終有一死”的推論,而拒絕“蘇格拉底是女人”的推論。后者這類錯誤的推理會關(guān)閉回路并觸發(fā)機器的警告燈,表示發(fā)生了邏輯錯誤。
布拉克邏輯機是一臺功能有限的專用機器。然而,當時問世的大多數(shù)專用計算裝置都是用來處理數(shù)字問題而不是處理邏輯問題的。早在皮爾斯還在研究邏輯與電力之間的聯(lián)系時,赫曼·霍列瑞斯就在設(shè)計一臺制表機,以進行1890年的美國人口普查的計算。
霍列瑞斯的公司最終被一家企業(yè)合并了,這家企業(yè)后來更名為國際商用機器公司(簡稱IBM)。
計算機的誕生
克勞德·香農(nóng)在其麻省理工學院的博士論文中解釋了如何利用電力開關(guān)電路模擬布爾邏輯(查爾斯·皮爾斯在50年前就曾預言過)。受到該論文的鼓舞,IBM的高管于20世紀30年代同意斥資制造一臺基于機電式繼電器的大型計算機器。他們給了哈佛大學教授霍華德·艾肯一筆在當時頗為可觀的經(jīng)費——50萬美元,用以研制Mark I,Mark I是一臺受巴貝奇分析機的啟發(fā)而設(shè)計的計算裝置。巴貝奇設(shè)計的是一個純粹的機械裝置,相比之下,Mark I是一個電力機械裝置,它以繼電器為開關(guān),繼電器陣列則作為數(shù)字存儲空間。
電力驅(qū)動正在為電子驅(qū)動讓路。當其他人將蒸汽驅(qū)動的巴貝奇式機器換成電氣繼電器時,愛荷華州立大學的數(shù)學和物理學教授約翰·阿塔納索夫看到了將電氣繼電器換成電子元件的可能性。在美國參加第二次世界大戰(zhàn)前不久,阿塔納索夫在克利福德·貝里的幫助下設(shè)計出了ABC。ABC是阿塔納索夫-貝里計算機的首字母縮寫,這臺設(shè)備的開關(guān)裝置采用的不是繼電器,而是真空管。
這個開關(guān)裝置的更新?lián)Q代是一次技術(shù)性飛躍。理論上說,以真空管為開關(guān)元件的機器運算起來比繼電器機器更快速、更高效。但ABC和巴貝奇分析機一樣,也未能問世,這也許是因為阿塔納索夫所籌集的經(jīng)費還不到7000美元,遠不足以建造這臺機器。不過,阿塔納索夫和貝里確實組裝出了一臺簡單的樣機。他們用大量的電線和真空管拼出了一臺粗糙的臺式計算器。通過將真空管作為開關(guān)元件這一舉措,阿塔納索夫大大推動了計算機技術(shù)的發(fā)展。相較于繼電器開關(guān),真空管的高效使得計算機的面世成為現(xiàn)實。
真空管是抽掉了空氣的一種玻璃管。托馬斯·愛迪生發(fā)現(xiàn),電子在某些條件下能在真空中流動,而李·德·福里斯特利用“愛迪生效應”最終將真空管制成了電子開關(guān)。20世紀50年代,真空管被廣泛應用到電視機、計算機等電子設(shè)備中。現(xiàn)如今我們?nèi)钥梢钥吹綉蔑@像管的計算機顯示器或電視機屏幕。
到20世紀30年代,計算機的誕生已經(jīng)是順理成章。計算機似乎也注定是價格昂貴的大塊頭專用設(shè)備。體積大、價格高的問題幾十年后才得以解決,但打破單一用途這一點在當時就已提上日程。
英國數(shù)學家阿蘭·圖靈曾設(shè)想過這樣一臺機器,這臺機器的目的只有一個,即讀取某一可描述任務的編碼指令,并根據(jù)指令自行完成任務。這個想法在當時可謂前所未聞。若一臺機器真的能夠完成指令描述的所有任務,那么它就是一臺真正的通用設(shè)備。或許在圖靈之前沒有任何人有過如此宏大的想法。但在10年之內(nèi),圖靈的想法就變成了現(xiàn)實。那些指令變成了程序,而圖靈的設(shè)想在另一位數(shù)學家約翰·馮·諾伊曼的手中變成了一臺通用計算機。
將計算機變成現(xiàn)實的大部分工作都是第二次世界大戰(zhàn)期間在秘密實驗室中進行的。圖靈就是這樣工作的。1943年,美國費城莫爾電氣工程學院的約翰·莫奇利和約翰·埃克特提出了一個關(guān)于計算機的想法。很快,他們就和美國軍方開始合作研發(fā)電子數(shù)字積分計算機(ENIAC)。一旦成功,它將成為第一臺全電子數(shù)字計算機。除了用于信息輸入與輸出的外圍設(shè)備,ENIAC就是一臺純粹的真空管機器。
發(fā)明ENIAC的功勞歸誰向來是有爭議的。ENIAC可能是根據(jù)莫奇利與阿塔納索夫會面后形成的想法設(shè)計出來的,但至少ENIAC是真實存在的。莫奇利和埃克特吸引了不少才華橫溢的數(shù)學家加入ENIAC項目,其中包括聰明絕頂?shù)募s翰·馮·諾伊曼。馮·諾伊曼加入了ENIAC項目,并為建造ENIAC作出了許多貢獻,他還為一臺更加復雜的電子離散變量自動計算機(EDVAC)提供了基本設(shè)想。人們對馮·諾伊曼的貢獻也報道很多。
馮·諾伊曼將莫爾電氣工程學院的重點從技術(shù)方面轉(zhuǎn)移到了邏輯方面。在他看來,EDVAC不僅僅是一臺用來計算的設(shè)備。馮·諾伊曼覺得,除算術(shù)運算之外,EDVAC應該還能進行邏輯運算,并能以代碼符號進行運算,而且那些以代碼符號進行運算和解釋的指令本身也應該是編入機器的代碼符號,并用以繼續(xù)操作運算。這是現(xiàn)代計算機概念中最后一個根本性洞見。馮·諾伊曼規(guī)定EDVAC應該能根據(jù)指令來編寫程序,而這些指令本身是作為數(shù)據(jù)輸入計算機的,這為存儲程序計算機創(chuàng)建了標準。
1945年5月之后,馮·諾伊曼提出將ENIAC改為 EDVAC那樣的可編程計算機的方法,阿黛爾·戈爾斯坦編寫了能讓機器更易操作的語言(包含55種操作)。從那以后,再沒有人以最初的操作模式來運行 ENIAC了。
1946年年初, ENIAC開發(fā)完成,它的運行速度比繼電式計算機快1000倍。但盡管是電子計算機,ENIAC運行起來仍然咔咔作響。ENIAC就是一屋子滴答作響的電傳打字機、滋滋轉(zhuǎn)的磁帶驅(qū)動器以及滿墻相對安靜的電子線路板。ENIAC有2萬個開關(guān)元件,重約30噸,耗電150千瓦。盡管功率很大,但任何時候 ENIAC一次只能處理20個十進制數(shù)字。不過在完全制造完成之前,它就已經(jīng)派上了大用場。1945年,ENIAC被用于美國新墨西哥州洛斯阿拉莫斯市原子彈測試的計算。
第二次世界大戰(zhàn)結(jié)束之后,那些秘密實驗室開始解密他們的工作成果和設(shè)計,由此出現(xiàn)了一個新興產(chǎn)業(yè)。制造計算機立馬成了一門生意,此時經(jīng)歷了Mark I項目的失望后,IBM的高管們重新振作起來,著手制造通用計算機。沒過多久,IBM就成為了行業(yè)領(lǐng)頭羊。
不過很快,20世紀60年代出現(xiàn)了一款新型計算機。比起先前的計算機,這種計算機體積更小、價格更低。生產(chǎn)小型機的公司中,最值得一提的是波士頓的DEC公司和加州帕洛阿爾托的惠普公司。這些公司當時生產(chǎn)的計算機就是圖靈和馮·諾伊曼所指的通用計算機,它們更小巧,更高效,功能也更強大。不久之后,計算機的核心技術(shù)取得了重大突破,這使得計算機在功能、效率和小型化幾個方面取得了驚人的發(fā)展。
(摘自人民郵電出版社《硅谷之火:個人計算機的誕生與衰落(第3版)》 )