巴貝奇首先為分析機(jī)構(gòu)思了“存貯庫”和“運(yùn)算室”。此外,巴貝奇也構(gòu)思了送入和取出數(shù)據(jù)的機(jī)構(gòu),以及在“存儲(chǔ)庫”和“運(yùn)算室”之間運(yùn)輸數(shù)據(jù)的部件。一個(gè)多世紀(jì)過去后,現(xiàn)代計(jì)算機(jī)的結(jié)構(gòu)幾乎就是巴貝奇分析機(jī)的翻版,只不過它的主要部件由機(jī)械變成了集成電路。因此,現(xiàn)代人給巴貝奇封了一個(gè)“計(jì)算機(jī)之父”的稱號(hào)。
巴貝奇的另一個(gè)重要的貢獻(xiàn)是在計(jì)算機(jī)控制中加入了分支控制,使得計(jì)算機(jī)和計(jì)算器分道揚(yáng)鑣。條件控制非常重要,軟件工程師都非常熟悉,程序的流程有3類:順序、分支、循環(huán),分支控制使得計(jì)算機(jī)可以做很多事,而不像計(jì)算器只能做一件事。
巴貝奇不是一個(gè)人在戰(zhàn)斗,他在研制計(jì)算機(jī)的過程中,找到了一個(gè)志同道合的女助手,她就是英國著名浪漫派詩人拜倫的女兒——愛達(dá)·拜倫(也叫愛達(dá)·拉弗雷斯,同丈夫姓)。
5.第一位程序員——居然是個(gè)女人
愛達(dá)出生不久后父母離異,愛達(dá)由母親撫養(yǎng)成人。深受數(shù)學(xué)家母親的影響,她從小就酷愛數(shù)學(xué),一直醉心于數(shù)學(xué)研究。在當(dāng)時(shí),巴貝奇的機(jī)器被認(rèn)為是沒有價(jià)值的,是個(gè)只會(huì)燒錢的廢物,巴貝奇拉不到經(jīng)費(fèi),也得不到人們的理解,不過愛達(dá)卻非常清楚這項(xiàng)工作的意義。愛達(dá)負(fù)責(zé)為這臺(tái)還沒有建成的機(jī)器寫程序,她創(chuàng)造了子程序、循環(huán)的概念。后來美國國防部開發(fā)了一種面向?qū)ο蟮母呒?jí)編程語言,為了紀(jì)念這位計(jì)算機(jī)軟件的開山之祖,美國國防部將這種語言命名為ADA(愛達(dá))。ADA語言至今還在計(jì)算機(jī)的某些領(lǐng)域發(fā)揮著重要作用,而愛達(dá)也被人們尊稱為世界上第一個(gè)程序員。
程序員這個(gè)職業(yè)一般被認(rèn)為是男性職業(yè),就像我所在的公司,寫軟件的男女比例都快到10:1了,不想第一位程序員卻是個(gè)女人,而且是個(gè)詩人的女兒,歷史真是把玩笑開大了。
巴貝奇和愛達(dá)的想法超前世界太多年,當(dāng)時(shí)人們對(duì)電還沒有太深刻的認(rèn)識(shí),機(jī)械水平也不能支撐分析機(jī)的實(shí)現(xiàn),他們終其一生也沒法制造出自己所設(shè)想的機(jī)器。
直到大半個(gè)世紀(jì)之后,在哈佛大學(xué)攻讀博士學(xué)位的美國青年霍德華·艾肯(H·Aiken),
從圖書館積滿灰塵的書刊里發(fā)現(xiàn)了分析機(jī)論文。巴貝奇仿佛還在同他娓娓交談,為他講解那臺(tái)機(jī)器的結(jié)構(gòu),目光中充滿著期待的神色。以艾肯所處時(shí)代的科技水平,已經(jīng)能夠?qū)崿F(xiàn)巴貝奇的夙愿。為此,他寫了一篇《自動(dòng)計(jì)算機(jī)的設(shè)想》的建議書,提出要用機(jī)電方式,而不是用純機(jī)械方法來構(gòu)造新的“分析機(jī)”。
1944年,在IBM公司提供的100萬美元資助下,艾肯研制出著名的MarkⅠ機(jī)電式計(jì)算機(jī),設(shè)計(jì)思想幾乎就是巴貝奇分析機(jī)的翻版,MarkⅠ當(dāng)時(shí)就被用來計(jì)算原子核裂變過程。1946年,艾肯發(fā)表文章寫道:“這臺(tái)機(jī)器能自動(dòng)實(shí)現(xiàn)人們預(yù)先選定的系列運(yùn)算,甚至可以求解微分方程?!边@是對(duì)巴貝奇預(yù)言最好的驗(yàn)證。事隔多年后,已經(jīng)擔(dān)任大學(xué)教授的艾肯博士談起巴貝奇其人其事,仍然驚嘆不已,他感慨地說:“假如巴貝奇晚生75年,我就會(huì)失業(yè)?!?/p>
巴貝奇和愛達(dá)是不幸的,他們生前所作的工作得不到認(rèn)可,他們將種子種在了地下,辛勤耕耘,但收獲的卻不是他們。在巴貝奇近80年的奮斗生涯里,屢戰(zhàn)屢敗,屢敗屢戰(zhàn),他始終不放棄自己對(duì)崇高理想的追求。正如他經(jīng)常所說的那樣:“不管今天怎樣被認(rèn)為是無用的知識(shí),到后世將會(huì)變成大眾的知識(shí),這就是知識(shí)的生命力?!?/p>
巴貝奇和愛達(dá)過得很悲催,不過悲催的不僅是他們,還包括下面這位。
6.圖靈機(jī)
計(jì)算機(jī)領(lǐng)域一直缺少一個(gè)獎(jiǎng)項(xiàng)。諾貝爾獎(jiǎng)一般只授予基礎(chǔ)研究的人,像計(jì)算機(jī)這樣偏向于應(yīng)用的領(lǐng)域卻是很難獲獎(jiǎng)。1966年,美國計(jì)算機(jī)協(xié)會(huì)(Association for Computer Machinery,ACM)設(shè)立圖靈獎(jiǎng),專門獎(jiǎng)勵(lì)那些對(duì)計(jì)算機(jī)科學(xué)研究與推動(dòng)計(jì)算機(jī)技術(shù)發(fā)展有卓越貢獻(xiàn)的杰出科學(xué)家,圖靈為什么能擔(dān)當(dāng)大任,因?yàn)樗怯美碚撟C明計(jì)算機(jī)可行的第一人。
阿蘭·圖靈于1912年6月23日出生于英國倫敦。圖靈很小的時(shí)候就顯示出了自己的科學(xué)家天分,3歲時(shí),他把玩具木頭人的胳膊掰下來種植到花園里,想讓它們能長出更多的木頭。8歲時(shí),圖靈寫了一部“科學(xué)著作”:《關(guān)于一種顯微鏡》,除了錯(cuò)了幾個(gè)單詞外,還算是有板有眼。
1936年,24歲的圖靈發(fā)表了一篇論文《On computable numbers, with an application to the entscheidungs problem》(論可計(jì)算數(shù)及其在判定問題中的應(yīng)用)。這篇論文被譽(yù)為是闡明計(jì)算機(jī)原理的開山之作。
圖靈在這篇論文中,詳細(xì)描述了一項(xiàng)計(jì)算任務(wù)是怎么用一種計(jì)算機(jī)器(Computing Machine)來完成的。下圖為圖靈機(jī)的基本組成: