無處不在、無所不能的電腦,已歷經(jīng)了50多個春華秋實。50余年在人類的歷史長河中只是一瞬間,電腦卻徹底改變了我們的生活。回顧電腦發(fā)展的歷史,并依此上溯它的起源,真令人驚嘆滄海桑田的巨變;歷數(shù)電腦史上的英雄人物和跌宕起伏的發(fā)明故事,將給后人留下了長久的思索和啟迪。請讀者隨著我們的史話倒轉時空,從電腦最初的源頭說起。
誰都知道,電腦的學名叫做電子計算機。以人類發(fā)明這種機器的初衷,它的始祖應該是計算工具。英語里“Calculus”(計算)一詞來源于拉丁語,既有“算法”的含義,也有腎臟或膽囊里的“結石”的意思。遠古的人們用石頭來計算捕獲的獵物,石頭就是他們的計算工具。著名科普作家阿西莫夫說,人類最早的計算工具是手指,英語單詞“Dight”既表示“手指”又表示“整數(shù)數(shù)字”;而中國古人常用“結繩”來幫助記事,“結繩”當然也可以充當計算工具。石頭、手指、繩子……,這些都是古人用過的“計算機”。
不知何時,許多國家的人都不約而同想到用“籌碼”來改進工具,其中要數(shù)中國的算籌最有名氣。商周時代問世的算籌,實際上是一種竹制、木制或骨制的小棍。古人在地面或盤子里反復擺弄這些小棍,通過移動來進行計算,從此出現(xiàn)了“運籌”這個詞,運籌就是計算,后來才派生出“籌”的詞義。中國古代科學家祖沖之最先算出了圓周率小數(shù)點后的第6位,使用的工具正是算籌,這個結果即使用筆算也很不容易求得。
歐洲人發(fā)明的算籌與中國不盡相同,他們的算籌是根據(jù)“格子乘法”的原理制成。例如要計算1248×456,?可以先畫一個矩形,然后把它分成3×2個小格子,在小格子邊依次寫下乘數(shù)、被乘數(shù)的各位數(shù)字,再用對角線把小格子一分為二,分別記錄上述各位數(shù)字相應乘積的十位數(shù)與個位數(shù)。?把這些乘積由右到左,?沿斜線方向相加,最后就得到乘積。1617年,英國數(shù)學家納皮爾把格子乘法表中可能出現(xiàn)的結果,印刻在一些狹長條的算籌上,利用算籌的擺放來進行乘、除或其他運算。納皮爾算籌在很長一段時間里,是歐洲人主要的計算工具。算籌在使用中,一旦遇到復雜運算常弄得繁雜混亂,讓人感到不便,于是中國人又發(fā)明了一種新式的“計算機”。
著名作家謝爾頓在他的小說《假如明天來臨》里講過一個故事:騙子杰夫向經(jīng)銷商兜售一種袖珍計算機,說它“價格低廉,絕無故障,節(jié)約能源,十年中無需任何保養(yǎng)”。當商人打開包裝盒一看,這臺“計算機”原來是一把來自中國的算盤。世界文明的四大發(fā)源地──黃河流域、印度河流域、尼羅河流域和幼發(fā)拉底河流域──先后都出現(xiàn)過不同形式的算盤,只有中國的珠算盤一直沿用至今。珠算盤最早可能萌芽于漢代,定型于南北朝。它利用進位制記數(shù),通過撥動算珠進行運算:上珠每珠當五,下珠每珠當一,每一檔可當作一個數(shù)位。打算盤必須記住一套口訣,口訣相當于算盤的“軟件”。算盤本身還可以存儲數(shù)字,使用起來的確很方便,它幫助中國古代數(shù)學家取得了不少重大的科技成果,在人類計算工具史上具有重要的地位。
15世紀以后,隨著天文、航海的發(fā)展,計算工作日趨繁重,迫切需要探求新的計算方法并改進計算工具。1630年,英國數(shù)學家奧特雷德使用當時流行的對數(shù)刻度尺做乘法運算,突然萌生了一個念頭:若采用兩根相互滑動的對數(shù)刻度尺,不就省得用兩腳規(guī)度量長度嗎?他的這個設想導致了“機械化”計算尺的誕生。奧特雷德是理論數(shù)學家,對這個小小的計算尺并不在意,也沒有打算讓它流傳于世,此后二百年,他的發(fā)明未被實際運用。18世紀末,以發(fā)明蒸汽機聞名于世的瓦特,成功地制出了第一把名副其實的計算尺。瓦特原來就是一位儀表匠,他的蒸汽機工廠投產(chǎn)后,需要迅速計算蒸汽機的功率和氣缸體積。瓦特設計的計算尺,在尺座上多了一個滑標,用來“存儲”計算的中間結果,這種滑標很長時間一直被后人所沿用。
1850年以后,對數(shù)計算尺迅速發(fā)展,成了工程師們必不可少的隨身攜帶的“計算機”,直到20世紀五、六十年代,它仍然是代表工科大學生身份的一種標志。
凝聚著許許多多科學家和能工巧匠智慧的早期計算工具,在不同的歷史階段發(fā)揮過巨大作用,但也將隨著科學發(fā)展而逐漸消亡,最終完成它們的歷史使命。
第一臺真正的計算機是著名科學家帕斯卡(B.Pascal)發(fā)明的機械計算機。
帕斯卡1623年出生在法國一位數(shù)學家家庭,他三歲喪母,由擔任著稅務官的父親拉扯他長大成人。從小,他就顯示出對科學研究濃厚的興趣。
少年帕斯卡對他的父親一往情深,他每天都看著年邁的父親費力地計算稅率稅款,很想幫助做點事,可又怕父親不放心。于是,未來的科學家想到了為父親制做一臺可以計算稅款的機器。19歲那年,他發(fā)明了人類有史以來第一臺機械計算機。
帕斯卡的計算機是一種系列齒輪組成的裝置,外形像一個長方盒子,用兒童玩具那種鑰匙旋緊發(fā)條后才能轉動,只能夠做加法和減法。然而,即使只做加法,也有個“逢十進一”的進位問題。聰明的帕斯卡采用了一種小爪子式的棘輪裝置。當定位齒輪朝9轉動時,棘爪便逐漸升高;?一旦齒輪轉到0,棘爪就“咔嚓”一聲跌落下來,推動十位數(shù)的齒輪前進一檔。
帕斯卡發(fā)明成功后,一連制作了50臺這種被人稱為“帕斯卡加法器”的計算機,至少現(xiàn)在還有5臺保存著。?比如,在法國巴黎工藝學校、英國倫敦科學博物館都可以看到帕斯卡計算機原型。據(jù)說在中國的故宮博物院,也保存著兩臺銅制的復制品,是當年外國人送給慈僖太后的禮品,“老佛爺”哪里懂得它的奧妙,只把它當成了西方的洋玩具,藏在深宮里面。
帕斯卡是真正的天才,他在諸多領域內都有建樹。后人在介紹他時,說他是數(shù)學家、物理學家、哲學家、流體動力學家和概率論的創(chuàng)始人。凡是學過物理的人都知道一個關于液體壓強性質的“帕斯卡定律”,這個定律就是他的偉大發(fā)現(xiàn)并以他的名字命名的。他甚至還是文學家,其文筆優(yōu)美的散文在法國極負盛名。可惜,長期從事艱苦的研究損害了他的健康,1662年英年早逝,死時年僅39歲。他留給了世人一句至理名言:“人好比是脆弱的蘆葦,但是他又是有思想的蘆葦。”
全世界“有思想的蘆葦”,尤其是計算機領域的后來者,都不會忘記帕斯卡在渾沌中點燃的亮光。1971年發(fā)明的一種程序設計語言──PASCAL語言,就是為了紀念這位先驅,使帕斯卡的英名長留在電腦時代里。
帕斯卡逝世后不久,與法蘭西毗鄰的德國萊茵河畔,有位英俊的年輕人正挑燈夜讀。黎明時分,青年人站起身,揉了一下疲乏的腰部,臉上流露出會心的微笑,一個朦朧的設想已醞釀成熟。雖然在帕斯卡發(fā)明加法器的時候,他尚未出世,但這篇由帕斯卡親自撰寫的關于加法計算機的論文,卻使他似醍醐灌頂,勾起強烈的發(fā)明欲。他就是德國大數(shù)學家、被《不列顛百科全書》稱為“西方文明最偉大的人物之一”的萊布尼茨(G.Leibnitz)。
萊布尼茨早年歷經(jīng)坎坷。當幸運之神降臨之時,他獲得了一次出使法國的機會。帕斯卡的故鄉(xiāng)張開臂膀接納他,為他實現(xiàn)計算機器的夙愿創(chuàng)造了契機。在巴黎,他聘請到一些著名機械專家和能工巧匠協(xié)助工作,終于在1674年造出一臺更完美的機械計算機。
萊布尼茨發(fā)明的新型計算機約有1米長,?內部安裝了一系列齒輪機構,除了體積較大之外,?基本原理繼承于帕斯卡。?不過,萊布尼茨技高一籌,他為計算機增添了一種名叫“步進輪”的裝置。步進輪是一個有9個齒的長圓柱體,9個齒依次分布于圓柱表面;旁邊另有個小齒輪可以沿著軸向移動,以便逐次與步進輪嚙合。每當小齒輪轉動一圈,步進輪可根據(jù)它與小齒輪嚙合的齒數(shù),分別轉動1/10、2/10圈……,直到9/10圈,這樣一來,它就能夠連續(xù)重復地做加法。
稍熟悉電腦程序設計的人都知道,連續(xù)重復計算加法就是現(xiàn)代計算機做乘除運算采用的辦法。萊布尼茨的計算機,加、減、乘、除四則運算一應俱全,也給其后風靡一時的手搖計算機鋪平了道路。
不久,因獨立發(fā)明微積分而與牛頓齊名的萊布尼茨,又為計算機提出了“二進制”數(shù)的設計思路。有人說,他的想法來自于東方中國。
大約在公元1700年左右某天,友人送給他一幅從中國帶來圖畫,名稱叫做“八卦”,是宋朝人邵雍所摹繪的一張“易圖”。萊布尼茨用放大鏡仔細觀察八卦的每一卦象,發(fā)現(xiàn)它們都由陽(—)?和陰(--)兩種符號組合而成。他撓有興趣地把8種卦象顛來倒去排列組合,?腦海中突然火花一閃──這不就是很有規(guī)律的二進制數(shù)字嗎??若認為陽(—)是“1”?,陰(--)是“0”,八卦恰好組成了二進制000到111共8個基本序數(shù)。正是在中國人睿智的啟迪下,萊布尼茨最終悟出了二進制數(shù)之真諦。雖然萊布尼茨設計的計算機用的還是十進制,但他率先系統(tǒng)提出了二進制數(shù)的運算法則,直到今天,二進制數(shù)仍然左右著現(xiàn)代電腦的高速運算。
帕斯卡的計算機經(jīng)由萊布尼茨的改進之后,人們又給它裝上電動機以驅動機器工作,成為名符其實的“電動計算機”,并且一直使用到本世紀20年代才退出舞臺。盡管帕斯卡與萊布尼茨的發(fā)明還不是現(xiàn)代意義上的計算機,但它們畢竟昭示著人類計算機史里的第一抹曙光。
要讓機器聽人類的話,按人類的意愿去計算,就要實現(xiàn)人與機器之間的對話,或者說,要把人類的思想傳送給機器,讓機器按人的意志自動執(zhí)行。
說來也怪,實現(xiàn)人與機器對話的始作俑者卻不是研制計算機的那些前輩,而是與計算機發(fā)明毫不相干的兩位法國紡織機械師。他們先后發(fā)明了一種指揮機器工作的“程序”,把思想直接“注入”到了提花編織機的針尖上。
顧名思義,提花編織機具有升降紗線的提花裝置,是一種能使綢布編織出圖案花紋的織布機器。
應該是,提花編織機最早出現(xiàn)在中國。在我國出土的戰(zhàn)國時代墓葬物品中,就有許多用彩色絲線編織的漂亮花布。據(jù)史書記載,西漢年間,鉅鹿縣紡織工匠陳寶光的妻子,能熟練地掌握提花機操作技術,?她的機器配置了120根經(jīng)線,平均60天即可織成一匹花布,每匹價值萬錢。明朝刻印的《天工開物》一書中,還赫然地印著一幅提花機的示意圖。可以想象,當歐洲的王公貴族對從“絲綢之路”傳入的美麗綢緞贊嘆不已時,中國的提花機也必定會沿著“絲綢之路”傳入歐洲。
不過,用當時的編織機編織圖案相當費事。所有的綢布都是用經(jīng)線(縱向線)和緯線(橫向線)編織而成。若要織出花樣,織工們必須細心地按照預先設計的圖案,在適當位置“提”?起一部分經(jīng)線,?以便讓滑梭牽引著不同顏色的緯線通過。機器當然不可能自己“想”到該在何處提線,只能靠人手“提”起一根又一根經(jīng)線,不厭其煩地重復這種操作。
1725年,法國紡織機械師布喬(B.?Bouchon)突發(fā)奇想,想出了一個“穿孔紙帶”的絕妙主意。布喬首先設法用一排編織針控制所有的經(jīng)線運動,然后取來一卷紙帶,根據(jù)圖案打出一排排小孔,并把它壓在編織針上。啟動機器后,正對著小孔的編織針能穿過去鉤起經(jīng)線,其他的針則被紙帶擋住不動。這樣一來,編織針就自動按照預先設計的圖案去挑選經(jīng)線,布喬的“思想”于是“傳遞”給了編織機,而編織圖案的“程序”也就“儲存”在穿孔紙帶的小孔之中。真正成功的改進是在80年后,另一位法國機械師杰卡德(J.Jacquard),大約在1805年完成了“自動提花編織機”的設計制作。
那是舉世矚目的法國大革命的年代──攻打巴士底獄,推翻封建王朝,武裝保衛(wèi)巴黎,市民們高唱著“馬賽曲”,紛紛走上街頭,革命風暴如火如荼。雖然杰卡德在1790年就基本形成了他的提花機設計構想,但為了參加革命,他無暇顧及發(fā)明創(chuàng)造,也扛起來福槍,投身到里昂保衛(wèi)戰(zhàn)的行列里。直到19世紀到來之后,杰卡德的機器才得以組裝完成。
杰卡德為他的提花機增加了一種裝置,能夠同時操縱1200個編織針,控制圖案的穿孔紙帶后來也換成了穿孔卡片。據(jù)說,杰卡德編織機面世后僅25年,考文垂附近的鄉(xiāng)村里就有了600臺,?在老式蒸氣機噗嗤噗嗤的伴奏下,把穿孔卡片上的圖案變成一匹匹漂亮的花綢布。紡織工人最初強烈反對這架自動化的新鮮玩意的到來,因為害怕機器會搶去他們的飯碗,使他們失去工作,但因為它優(yōu)越的性能,終于被人們普遍接受。1812年,僅在法國已經(jīng)裝配了萬余臺,并通過英國傳遍了西方世界,杰卡德也因此而被受予了榮譽軍團十字勛章和金質獎章。
杰卡德提花編織機奏響了19世紀機器自動化的序曲。在倫敦出版的《不列顛百科全書》和中國出版的《英漢科技詞匯大全》兩部書中,“JACQUARD”(杰卡德)一詞的詞條下,英語和漢語的意思居然都是“提花機”,可見,杰卡德的名字已經(jīng)與提花機融為了一體。杰卡德提花機的原理,即使到了電腦時代的今天,依然沒有更大的改動,街頭巷尾小作坊里使用的手工絨線編織機,其基本結構仍與杰卡德編織機大體相似。
此外,杰卡德編織機“千瘡百孔”的穿孔卡片,不僅讓機器編織出絢麗多彩的圖案,而且意味著程序控制思想的萌芽,穿孔紙帶和穿孔卡片也廣泛用于早期電腦以存儲程序和數(shù)據(jù)。或許,我們現(xiàn)在把“程序設計”俗稱為“編程序”,就引申自編織機的“編織花布”的詞義。
今天出版的許多計算機書籍扉頁里,都登載著巴貝奇(C.?Babbage)的照片:寬闊的額,狹長的嘴,銳利的目光顯得有些憤世嫉俗,堅定的但絕非缺乏幽默的外貌,給人以一個極富深邃思想的學者形象。
巴貝奇是一位富有的銀行家的兒子,1792年出生在英格蘭西南部的托特納斯,后來繼承了相當豐厚的遺產(chǎn),但他把金錢都用于了科學研究。童年時代的巴貝奇顯示出極高的數(shù)學天賦,?考入劍橋大學后,他發(fā)現(xiàn)自己掌握的代數(shù)知識甚至超過了教師。畢業(yè)留校,24歲的年青人榮幸受聘擔任劍橋大學“路卡辛講座”的數(shù)學教授。這是一個很少有人能夠獲得的殊榮,牛頓的老師巴羅是第一名,牛頓是第二名。在教學之余,巴貝奇完成了大量發(fā)明創(chuàng)造,如運用運籌學理論率先提出“一便士郵資”制度,發(fā)明了供火車使用的速度計和排障器等等。假若巴貝奇繼續(xù)在數(shù)學理論和科技發(fā)明領域耕耘,他本來是可以走上鮮花鋪就的坦途。然而,這位曠世奇才卻選擇了一條無人敢于攀登的崎嶇險路。
事情還得從法國講起。?18世紀末,?法蘭西發(fā)起了一項宏大的計算工程──人工編制《數(shù)學用表》,這在沒有先進計算工具的當時,是件極其艱巨的工作。法國數(shù)學界調集大批數(shù)學家,組成了人工手算的流水線,算得天昏地暗,才完成了17卷大部頭書稿。即便如此,計算出的數(shù)學用表仍然存在大量錯誤。據(jù)說有一天,巴貝奇與著名的天文學家赫舍爾湊在一起,對兩大部頭的天文數(shù)表評頭論足,翻一頁就是一個錯,翻兩頁就有好幾處。面對錯誤百出的數(shù)學表,巴貝奇目瞪口呆,他甚至喊出聲來:“天哪,這些計算錯誤已經(jīng)充斥彌漫了整個宇宙!”
這件事也許就是巴貝奇萌生研制計算機構想的起因。巴貝奇在他的自傳《一個哲學家的生命歷程》里,寫到了大約發(fā)生在1812年的一件事:“有一天晚上,我坐在劍橋大學的分析學會辦公室里,神志恍惚地低頭看著面前打開的一張對數(shù)表。一位會員走進屋來,瞧見我的樣子,忙喊道:‘喂!你夢見什么啦?’我指著對數(shù)表回答說:‘我正在考慮這些表也許能用機器來計算!’”巴貝奇的第一個目標是制作一臺“差分機”。所謂“差分”的含義,是把函數(shù)表的復雜算式轉化為差分運算,用簡單的加法代替平方運算。那一年,剛滿20歲的巴貝奇從法國人杰卡德發(fā)明的提花編織機上獲得了靈感,差分機設計閃爍出了程序控制的靈光──它能夠按照設計者的旨意,自動處理不同函數(shù)的計算過程。
巴貝奇耗費了整整十年光陰,于1822年完成了第一臺差分機,它可以處理3個不同的5位數(shù),計算精度達到6位小數(shù),當即就演算出好幾種函數(shù)表。由于當時工業(yè)技術水平極低,第一臺差分機從設計繪圖到機械零件加工,都是巴貝奇親自動手完成。當他看著自己的機器制作出準確無誤的《數(shù)學用表》,高興地對人講:“哪怕我的機器出了故障,比如齒輪被卡住不能動,那也毫無關系。你看,每個輪子上都有數(shù)字標記,它不會欺騙任何人。”以后實際運用證明,這種機器非常適合于編制航海和天文方面的數(shù)學用表。
成功的喜悅激勵著巴貝奇,他連夜奮筆上書皇家學會,要求政府資助他建造第二臺運算精度為20位的大型差分機。英國政府看到巴貝奇的研究有利可圖,破天荒地與科學家簽訂了第一個合同,?財政部慷慨地為這臺大型差分機提供出1.7萬英鎊的資助。巴貝奇自己也貼進去1.3萬英鎊巨款,?用以彌補研制經(jīng)費的不足。在當年,這筆款項的數(shù)額無異于天文數(shù)字──有資料介紹說,1831年約翰·布爾制造一臺蒸汽機車的費用才784英磅。
然而,第二臺差分機在機械制造工廠里觸上了“暗礁”。
第二臺差分機大約有25000個零件,?主要零件的誤差不得超過每英寸千分之一,即使用現(xiàn)在的加工設備和技術,要想造出這種高精度的機械也絕非易事。巴貝奇把差分機交給了英國最著名的機械工程師約瑟夫·克萊門特所屬的工廠制造,但工程進度十分緩慢。設計師心急火燎,從劍橋到工廠,從工廠到劍橋,一天幾個來回。他把圖紙改了又改,讓工人把零件重做一遍又一遍。年復一年,日復一日,直到又一個10年過去后,巴貝奇依然望著那些不能運轉的機器發(fā)愁,全部零件亦只完成不足一半數(shù)量。參加試驗的同事們再也堅持不下去,紛紛離他而去。巴貝奇獨自苦苦支撐了第三個10年,終于感到無力回天。
那天清晨,巴貝奇走進車間,偌大的作業(yè)場空無一人,只剩下滿地的滑車和齒輪,四處一片狼藉。他呆立在尚未完工的機器旁,深深地嘆了口氣。在痛苦的煎熬中,他無計可施,只得把全部設計圖紙和已完成的部分零件送進倫敦皇家學院博物館供人觀賞。1842年,在巴貝奇的一生中是極不平常的一年。英國政府宣布斷絕對他的一切資助,連科學界的友人都用一種怪異的目光看著他。英國首相譏諷道:“這部機器的唯一用途,就是花掉大筆金錢!”同行們譏笑他是“愚笨的巴貝奇”。皇家學院的權威人士,包括著名天文學家艾瑞等人,都公開宣稱他的差分機“毫無任何價值”……
就在痛苦艱難的時刻,孤獨苦悶的巴貝奇意外地收到一封來信,寫信人不僅對他表示理解而且還希望與他共同工作。娟秀字體的簽名,表明了她不凡的身份──伯爵夫人。
接到信函后不久,巴貝奇實驗室門口走進來一位年輕的女士。她身披素雅的斗蓬,鬢角上斜插一朵白色的康乃馨,顯得那么典雅端莊。巴貝奇一時愣在那里,他與這位女士似曾相識,又想不起曾在何處邂逅。女士落落大方地作了自我介紹,正是那位寫信人。
“您還記得我嗎?”女士低聲問道,“十多年前,您還給我講過差分機原理。”看到巴貝奇迷惑的眼神,她又笑著補充說:“您說我像野人見到了望遠鏡。”巴貝奇恍然大悟,想起已經(jīng)十分遙遠的往事。面前這位女士和那個小女孩之間,依稀還有幾分相似。原來,?伯爵夫人本名叫阿達·奧古斯塔(AdaAugusta),是英國著名詩人拜倫的獨生女。她比巴貝奇的年齡小20多歲,1815年出生。阿達自小命運多舛,來到人世的第二年,父親拜倫因性格不合與她的母親離異,從此別離英國。可能是從未得到過父愛的緣由,小阿達沒有繼承到父親詩一般的浪漫熱情,卻繼承了母親的數(shù)學才能和毅力。
還是在阿達的少女時代,母親的一位朋友領著她們去參觀巴貝奇的差分機。其他女孩子圍著差分機嘰嘰喳喳亂發(fā)議論,摸不著頭腦。只有阿達看得非常仔細,她十分理解并且深知巴貝奇這項發(fā)明的重大意義。或許是這個小女孩特殊的氣質,在巴貝奇的記憶里打下了較深的印記。他趕緊請阿達入座,并欣然同意與這位小有名氣的數(shù)學才女共同研制新的計算機器。
就這樣,在阿達27歲時,她成為巴貝奇科學研究上的合作伙伴,迷上這項常人不可理喻的“怪誕”研究。其時,她已經(jīng)成了家,丈夫是洛甫雷斯伯爵。按照英國的習俗,許多資料在介紹里都把她稱為“洛甫雷斯伯爵夫人”。
30年的困難和挫折并沒有使巴貝奇屈服,阿達的友情援助更堅定了他的決心。還在大型差分機進軍受挫的1834年,巴貝奇就已經(jīng)提出了一項新的更大膽的設計。他最后沖刺的目標,不是僅僅能夠制表的差分機,而是一種通用的數(shù)學計算機。巴貝奇把這種新的設計叫做“分析機”?,它能夠自動解算有100個變量的復雜算題,每個數(shù)可達25位,速度可達每秒鐘運算一次。
今天我們再回首看看巴貝奇的設計,分析機的思想仍然閃爍著天才的光芒。
由于巴貝奇晚年因喉疾幾乎不能說話,介紹分析機的文字主要由阿達替他完成。阿達在一篇文章里介紹說:“這臺機器不論在可能完成的計算范圍、簡便程度以及可靠性與精確度方面,或者是計算時完全不用人參與這方面,都超過了以前的機器。”巴貝奇把分析機設計得那樣精巧,?他打算用蒸汽機為動力,驅動大量的齒輪機構運轉。巴貝奇的分析機大體上有三大部分:其一是齒輪式的“存貯庫”,巴貝奇稱它為“倉庫”?(Store),每個齒輪可貯存10個數(shù),齒輪組成的陣列總共能夠儲存1000個50位數(shù)。分析機的第二個部件是所謂“運算室”,它被巴貝奇命名為“作坊”(Mill),其基本原理與帕斯卡的轉輪相似,用齒輪間的嚙合、旋轉、平移等方式進行數(shù)字運算。為了加快運算速度,他改進了進位裝置,使得50位數(shù)加50位數(shù)的運算可完成于一次轉輪之中。第三部分巴貝奇沒有為它具體命名,其功能是以杰卡德穿孔卡中的“0”和“1”來控制運算操作的順序,類似于電腦里的控制器。他甚至還考慮到如何使這臺機器處理依條件轉移的動作,比如,第一步運算結果若是“1”,就接著做乘法,若是“0”就進行除法運算。此外,巴貝奇也構思了送入和取出數(shù)據(jù)的機構,以及在“倉庫”和“作坊”之間不斷往返運輸數(shù)據(jù)的部件。
阿達“心有靈犀一點通”,她非常準確地評價道:“分析機‘編織’的代數(shù)模式同杰卡德織布機編織的花葉完全一樣”。于是,為分析機編制一批函數(shù)計算程序的重擔,落到了數(shù)學才女的肩頭。阿達開天辟地第一次為計算機編出了程序,其中包括計算三角函數(shù)的程序、級數(shù)相乘程序、伯努利函數(shù)程序等等。阿達編制的這些程序,即使到了今天,電腦軟件界的后輩仍然不敢輕易改動一條指令。人們公認她是世界上第一位軟件工程師。眾所周知,?美國國防部據(jù)說是花了250億美元和10年的光陰,把它所需要軟件的全部功能混合在一種計算機語言中,希望它能成為軍方數(shù)千種電腦的標準。1981年,這種語言被正式命名為ADA(阿達)語言,使阿達的英名流傳至今。
不過,以上講的都是后話,殊不知巴貝奇和阿達當年處在怎樣痛苦的水深火熱之中!由于得不到任何資助,巴貝奇為把分析機的圖紙變成現(xiàn)實,耗盡了自己全部財產(chǎn),弄得一貧如洗。他只好暫時放下手頭的活,和阿達商量設法賺一些錢,如制作什么國際象棋玩具,什么賽馬游戲機等等。為籌措科研經(jīng)費,他們不得不“下海”搞“創(chuàng)收”。最后,兩人陷入了惶惶不可終日的窘境。阿達忍痛兩次把丈夫家中祖?zhèn)鞯恼鋵毸瓦M當鋪,以維持日常開銷,而這些財寶又兩次被她母親出資贖了回來。貧困交加,無休止的腦力勞動,使阿達的健康狀況急劇惡化。1852年,懷著對分析機成功的美好夢想,軟件才女英年早逝,死時年僅36歲。阿達去世后,巴貝奇又默默地獨自堅持了近20年。晚年的他已經(jīng)不能準確地發(fā)音,甚至不能有條理地表達自己的意思,但是他仍然百折不撓地堅持工作。1871年,為計算機事業(yè)貢獻畢生精力的先驅者巴貝奇,終于滿懷著對分析機無言的悲悵,孤獨地離開了人世。有人把他的大腦用鹽漬著保存起來,想經(jīng)過若干年后,有更先進技術來研究他大腦保存的精神。
分析機終于沒能造出來,巴貝奇和阿達失敗了。巴貝奇和阿達的失敗是因為他們看得太遠,分析機的設想超出了他們所處時代至少一個世紀!社會發(fā)展的需求和科學技術發(fā)展的可能,使得他們注定要成為的悲劇人物。盡管如此,巴貝奇和阿達為電腦科學留下了一份極其珍貴的精神遺產(chǎn),包括30種不同設計方案,近2000張組裝圖和50000張零件圖……,更包括那種在逆境中自強不息,為追求理想奮不顧身的拼搏精神。
巴貝奇巨星隕落后,世人已逐漸將他淡忘,20世紀已經(jīng)來臨。計算機的歷史等待著,等待著巴貝奇式的人物再世,等待著人類劃時代的壯舉。
大約在1936年,美國青年霍德華·艾肯(H.Aiken)來哈佛大學攻讀物理學博士學位。恰好在世紀之交來到人世的艾肯,屬于大器晚成的科學家。由于家庭貧困,他不得不以半工半讀的方式艱難地讀完高中。大學期間,也是一邊工作,一邊刻苦學習,直到畢業(yè)后才謀到一份工程師的工作。36歲那年,他毅然辭去收入豐厚的職務,重新走進大學校門。由于博士論文的研究涉及到空間電荷的傳導理論,需要求解非常復雜的非線性微分方程,在進行繁瑣的手工計算之余,艾肯很想發(fā)明一種機器代替人工求解的方法,幻想能有一臺計算機幫助他解決數(shù)學難題。
三年之后,正如萊布尼茨在書里“找到”帕斯卡一樣,艾肯也是在圖書館里“發(fā)現(xiàn)”的巴貝奇和阿達。巴貝奇和阿達的論文,令年輕人心搖旌動。70多年過去后,巴貝奇仿佛還在對他娓娓而談:“任何人如果不接受我失敗的教訓,還仍然下決心去研制一臺把數(shù)學分析的全部工作都包括在內的機器的話,我不怕把自己的名譽交給他去作出應有的評價,因為只有他才完全了解我工作的性質及其成果的價值”。以艾肯所處時代的科技水平,也許已經(jīng)能夠完成巴貝奇未競的事業(yè),造出通用計算機。為此,他寫了一篇《自動計算機的設想》的建議書,提出要用機電方式,而不是用純機械方法來構造新的“分析機”。然而,正在求學的讀書人根本沒有可能籌措到那么大的一筆經(jīng)費。
取得博士學位的艾肯進入了美國海軍軍械局。一名小小的中尉,他仍然沒有錢。“金錢不是萬能的”,但是,對于艾肯實現(xiàn)計算機夢想來說,“沒有錢卻是萬萬不能的”,否則只會重蹈巴貝奇和阿達的復轍。
年輕的海軍中尉想到了制表機行業(yè)的IBM公司。
艾肯從他一位老師口中得知IBM董事長沃森的大名,他的老師此時正在一所由IBM出資創(chuàng)辦的“哥倫比亞大學統(tǒng)計局”里任職,非常樂意為學生寫了份推薦信。艾肯連續(xù)通宵達旦地準備材料,擬好了一份詳細的可行性報告,直接跑去找沃森。他聽老師講,沃森的作風從來就是獨斷專行,不設法說服此人,研制計算機的計劃一準泡湯。
IBM的總部座落在一幢古色古香的建設物里。?沃森坐在寬大的寫字臺后,一言不發(fā)聽艾肯陳述。在他的背后,是整整齊齊擺滿各種書籍的大書柜,書柜的上方貼著只有一個單詞的格言──思考(THINK),這是沃森最為推崇的行動準則。
艾肯說完了該說的話,忐忑不安地望著對面這位愛好“思考”的企業(yè)家。
“至少需要多少錢?”沃森開口詢問。“恐怕要投入數(shù)以萬計吧”,艾肯喃喃地回答,“不過……”
沃森擺了擺手,打斷了艾肯的話頭,拿起筆來,在報告上劃了幾下。
艾肯心里一緊:“沒戲了!”出于禮貌,他還是恭敬地用雙手接過那張紙,隨即低頭一瞅,頓時喜上眉稍──沃森的大筆一揮,批給了計算機100萬美元!
有了IBM作堅強后盾,?新的計算機研制工作在哈佛物理樓后的一座紅磚房里開了場,艾肯把它取名為“馬克1號”(MarkⅠ),又叫做“自動序列受控計算機”。IBM又派來萊克、德菲和漢密爾頓等工程師組成攻關小組,財源充足,兵強馬壯。比起巴貝奇和阿達,艾肯的境況實在要幸運得多。?IBM也因此從生產(chǎn)制表機、肉鋪磅秤、咖啡碾磨機等亂七八糟玩意的行業(yè)里,正式跨進了計算機的“領地”。
艾肯設計的馬克1號已經(jīng)是一種電動的機器,?它借助電流進行運算,最關鍵的部件,用的是普通電話上的繼電器。?馬克1號上大約安裝了3000個繼電器,每一個都有由彈簧支撐著的小鐵棒,?通過電磁鐵的吸引上下運動。吸合則接通電路,代表“1”;釋放則斷開電路,代表“0”。繼電器“開關”能在大約1/100秒的時間內接通或是斷開電流,當然比巴貝奇的齒輪先進得多。
為馬克1號編制計算程序的也是一位女數(shù)學家格雷斯·霍波(G.?Hopper)。這位聲名遐邇的數(shù)學博士,1944年參加到哈佛大學計算機研究工作,她說:“我成了世界上第一臺大型計算機MarkⅠ的第三名程序員。”霍波博士后來還為第一臺儲存程序的商業(yè)電子計算機UNIVAC寫過程序,又率先研制成功第一個編譯程序A-O和計算機商用語言COBOL,被公認是計算機語言領域的帶頭人。有一天,她在調試程序時出現(xiàn)了故障,拆開繼電器后,發(fā)現(xiàn)有只飛蛾被夾扁在觸點中間,從而“卡”住了機器的運行。于是,霍波恢諧地把程序故障統(tǒng)稱為“臭蟲”?(bug),而這一奇怪的“稱呼”,后來成為計算機領域的專業(yè)行話,如DOS系統(tǒng)中的調試程序,程序名稱就叫DEBUG。
1944年2月,馬克1號計算機在哈佛大學正式運行。從外表看,它的外殼用鋼和玻璃制成,長約15米,高約2.4米,自重達到31.5噸,是個像恐龍般巨大身材的龐然大物。據(jù)說,艾肯和他的同事們,?為它裝備了15萬個元件和長達800公里的電線。這臺機器能以令當時人們吃驚的速度工作──每分鐘進行200次以上的運算。它可以作23位數(shù)加23位數(shù)的加法,一次僅需要0.3秒;而進行同樣位數(shù)的乘法,則需要6秒多的時間。只是它運行起來響聲不絕于耳,有的參觀者說:“就象是擠滿了一屋子編織絨線活的婦女”,也許你會聯(lián)想到,馬克1號計算機也與杰卡德編織機有天然的聯(lián)系。馬克1號代表著自帕斯卡以來,?人類所制造的機械計算機或電動計算機之頂尖水平,當時就被用來計算原子核裂變過程。它以后運行了15年,編出的數(shù)學用表我們至今還在使用。1946年,艾肯和霍波聯(lián)袂發(fā)表文章說,這臺機器能自動實現(xiàn)人們預先選定的系列運算,甚至可以求解微分方程。
馬克1號終于實現(xiàn)了巴貝奇的夙愿。?事隔多年后,已經(jīng)擔任大學教授的艾肯談起巴貝奇其人其事來,仍然驚嘆不已,他曾感慨地說,如果巴貝奇晚生75年,我就會失業(yè)。但是,馬克1號是早期計算機的最后代表,?從它投入運行的那一刻開始就已經(jīng)過時,因為此時此刻,人類社會已經(jīng)跨進了電子的時代。