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