世界上第一個(gè)編譯器---女牛人Grace Murray Hoppe
世界上第一位程序員是女的,世界上第一個(gè)編譯器也是女牛人開(kāi)發(fā)的!
下面寄來(lái)詳細(xì)介紹下開(kāi)發(fā)世界上第一個(gè)編譯器的女牛人。
引言
1992年1月7日,華盛頓阿靈頓國(guó)家公墓,美國(guó)海軍為在元旦凌晨睡夢(mèng)中安然去世的退休海軍女軍官格蕾絲·穆雷·赫柏 (Grace Murray Hopper) 舉行了隆重的葬禮。海軍儀仗隊(duì)和眾多肅穆的海軍官兵按照海軍的禮儀向這位令人尊敬的長(zhǎng)者作最后的告別。千千萬(wàn)萬(wàn)的美國(guó)人則通過(guò)電視轉(zhuǎn)播觀看了葬禮的實(shí)況。四年后的1996年1月6日,美國(guó)海軍在緬因州的巴斯港 (Bath, Maine) 為它新建造的一艘阿利·伯克級(jí)驅(qū)逐艦舉行了隆重的命名儀式,把它命名為“赫柏號(hào)”。這是第二次世界大戰(zhàn)以后第一次、整個(gè)美國(guó)海軍歷史上第二次以一位女性的名字命名一艘戰(zhàn)艦。
啟蒙
Grace Hopper (1906–1992), 本姓Murray, Hopper為夫姓。1906年12月9日生于美國(guó)紐約一個(gè)海軍世家,其祖父軍銜曾達(dá)少將。她的外祖父則是一名高級(jí)土木工程師,常常帶著她去上班,她也十分高興地去幫著扶紅白相間的測(cè)量桿,這培養(yǎng)了她對(duì)于幾何學(xué)和數(shù)學(xué)的興趣。Grace的父親因患動(dòng)脈硬化導(dǎo)致雙腿截肢,長(zhǎng)期住院,這使得作為長(zhǎng)女的她從小就更加懂事和勤奮。
Grace回憶她小時(shí)候最喜歡上的課是數(shù)學(xué)課,特別是幾何課。因?yàn)樵趲缀握n上,她可以把鉛筆盒里所有彩色的筆全部拿出來(lái)用。雖然她是個(gè)女孩子,可是各種量角器、計(jì)算尺她都喜歡拿來(lái)玩,研究它們的原理和作用。她還做過(guò)一些很像男孩子做的事情:她曾經(jīng)在六、七歲的時(shí)候,把家里所有的鐘都拆開(kāi),但是沒(méi)有一個(gè)成功裝回去,因此還受到了嚴(yán)厲的處罰。
教育
進(jìn)入大學(xué)之前,Grace就讀于私立的Wardlaw-Hartridge學(xué)校。1928年她大學(xué)畢業(yè)于瓦薩學(xué)院 (Vassar College) 并取得數(shù)學(xué)和物理的雙學(xué)士學(xué)位,在校期間是美國(guó)資優(yōu)學(xué)生聯(lián)誼會(huì) (Phi-Beta-Kappa Society) 成員 (PBK是一個(gè)有著兩百多年歷史的,很好很強(qiáng)大的學(xué)生社團(tuán)。老布什、克林頓、厄普代克都曾是其中一員)。隨后進(jìn)入耶魯大學(xué)攻讀數(shù)學(xué)碩士,在 1930 年得到碩士學(xué)位。1930年6月15日她與Vincent Foster Hopper結(jié)婚 (Vincent是紐約大學(xué)英文系教授,1945年過(guò)世,他與Hopper沒(méi)有生育子女)。
結(jié)婚沒(méi)多久,Grace就決定要攻讀博士,于是她一邊教書(shū),一邊在耶魯大學(xué)進(jìn)修博士學(xué)位,并在 1934 年取得學(xué)位,前后只花了四年的時(shí)間,這算是相當(dāng)快的。她的博士論文題為《代數(shù)方程可約的一個(gè)新準(zhǔn)則》 (A New Criterion for Reducibility of Algebraic Equations), 但是讓許多人驚奇的是,她是用幾何方法證明這個(gè)準(zhǔn)則的。
作為一個(gè)女性,獲得數(shù)學(xué)博士學(xué)位是一個(gè)很大的成就,因?yàn)樵跀?shù)學(xué)上取得成就而獲得博士學(xué)位本身就是很困難的。據(jù)統(tǒng)計(jì),從1862-1934年間,全美總共授予1279個(gè)博士學(xué)位,平均每年不到18個(gè),而女性獲得數(shù)學(xué)博士學(xué)位的就更是鳳毛麟角了。在求職方面,女?dāng)?shù)學(xué)家通常只能到高中教課,極難希望上大學(xué)講臺(tái),但Grace做到了:她在碩士畢業(yè)后被母校瓦薩學(xué)院聘任,短短幾年就從助教升到副教授。不過(guò),到這個(gè)階段為止,我們還看不出來(lái)她會(huì)跟計(jì)算機(jī)產(chǎn)生任何關(guān)系。
轉(zhuǎn)折
1941年是Grace人生的轉(zhuǎn)折點(diǎn)。珍珠港事件后,Grace有了從軍的念頭,她想加入海軍。當(dāng)時(shí)女性從軍都是做后備軍人,大部分都是護(hù)士,要不然就是做后勤。如果是受過(guò)高等教育的女性,就會(huì)被分配去做有關(guān)計(jì)算的工作。由于家庭傳統(tǒng),她選擇了參加海軍的WAVES組織 (Women Accepted for Voluntary Emergency Service)。
在馬薩諸塞州北安普敦 (Northampton, MA) 的海軍軍官學(xué)校接受培訓(xùn)以后,她被授予上尉軍銜,考慮到她的數(shù)學(xué)背景,她被派到哈佛大學(xué)的Howard Aiken (1900-1973) 教授手下參與Mark I的研制工作。Aiken教授是1939年的哈佛物理博士,也是Mark I、II、III、IV這一系列電機(jī)計(jì)算機(jī)的設(shè)計(jì)及制造者。
題外話(huà):Mark I原來(lái)的名字是ASCC (Automatic Sequence Controlled Calculator), 由哈佛大學(xué)與IBM合資建造,完成于1943年,重35噸,內(nèi)部線(xiàn)路長(zhǎng)達(dá)500英里。但是在1944年的Mark I啟用典禮之后,IBM和哈佛就鬧翻了,原因是哈佛認(rèn)為IBM只是個(gè)出錢(qián)的財(cái)主,主要的智力貢獻(xiàn)是哈佛人的功勞,IBM認(rèn)為自己也在工程上做了許多研究和創(chuàng)新,而哈佛卻認(rèn)為那些工程上的創(chuàng)新都不值一提。(殘念 ..) 所以IBM就從哈佛的Mark計(jì)劃中退出。后來(lái)的十年間,IBM在學(xué)術(shù)界的主要合作伙伴,變成了哥倫比亞大學(xué)。(都是牛校中的牛校啊 ..)
Grace從小就喜歡各種計(jì)算尺,當(dāng)她走進(jìn)哈佛的計(jì)算工廠見(jiàn)到這臺(tái)電機(jī)計(jì)算機(jī)時(shí),她說(shuō)這是她看過(guò)最有趣的計(jì)算尺。在她之前,有兩個(gè)男生在Mark上寫(xiě)過(guò)程序,這兩個(gè)男生后來(lái)幫助Grace在三天之內(nèi)寫(xiě)出了她的第一個(gè)程序。所以算起來(lái),Grace是世界上第三個(gè)在電機(jī)計(jì)算機(jī)上寫(xiě)程序的人。
榮耀
1945年9月9日,發(fā)生了一件對(duì)計(jì)算機(jī)界而言非常重要的軼事。那天的天氣很熱,工作人員把窗戶(hù)都打開(kāi)了,后來(lái)有一只蛾飛了進(jìn)來(lái),結(jié)果那只蛾死在一只繼電器里面,造成電路不通,機(jī)器死機(jī),他們沒(méi)辦法算出他們要的結(jié)果。經(jīng)過(guò)了近一天的檢查,Grace找到了那只蛾,她設(shè)法用她的發(fā)夾把那只蛾弄了出來(lái),還把那只蛾的尸體貼在她的管理日志上,上面寫(xiě)道:“就是這個(gè)Bug,害我們今天的工作無(wú)法完成!边@個(gè)消息傳開(kāi)之后,那個(gè)實(shí)驗(yàn)室里的人每逢老板詢(xún)問(wèn)為何還沒(méi)做出結(jié)果時(shí),都把過(guò)錯(cuò)推給Bug. (那個(gè)實(shí)驗(yàn)室里的人們真是幸福啊 ..)
爾后,”bug” (小蟲(chóng)) 和”debug” (除蟲(chóng)) 這兩個(gè)本來(lái)普普通通的詞匯成了計(jì)算機(jī)領(lǐng)域中特指莫明其妙的“錯(cuò)誤”和“排除錯(cuò)誤”的專(zhuān)用詞匯而流傳至今。
Grace對(duì)計(jì)算機(jī)界的貢獻(xiàn)相當(dāng)多,Bug這個(gè)名詞的引用,其實(shí)只算是一個(gè)小小的插曲。
她最大的貢獻(xiàn)是發(fā)明了世界上第一個(gè)編譯器?(Compiler), 名字叫做A-0. 當(dāng)時(shí)是沒(méi)有任何組合語(yǔ)言及程序語(yǔ)言存在的,所有的程序設(shè)計(jì)人員都要把程序翻譯成機(jī)器碼,即”0011000101011″這樣的形式,在紙上打孔,再送到機(jī)器里去讀。Grace在進(jìn)入Eckert-Mauchley公司之后,便產(chǎn)生了一種想法,她想設(shè)計(jì)一種程序,讓人可以用類(lèi)似英文的語(yǔ)法,把想做的事寫(xiě)下來(lái),然后用這個(gè)程序把英文翻譯成機(jī)器的語(yǔ)法,交給機(jī)器去執(zhí)行。這個(gè)想法就是今日的Compiler (編譯器)。
當(dāng)初她提出這樣的構(gòu)想時(shí),眾人皆曰不可。所有人都告訴她計(jì)算機(jī)只能做計(jì)算,只能處理數(shù)字,計(jì)算機(jī)是不懂英文的。在50年代,大部分人都尚未意識(shí)到計(jì)算機(jī)是用來(lái)處理信息的工具,所有的人就認(rèn)為計(jì)算機(jī)只是個(gè)計(jì)算器而已。
Grace Hopper可能是第一個(gè)想到這個(gè)問(wèn)題并且有機(jī)會(huì)做下去的人。爾后,她就到處去演講以籌集資金來(lái)做這項(xiàng)計(jì)劃。這段期間,有很多朋友問(wèn)她:“你怎么這么勇敢呢? 萬(wàn)一搞砸了,你該怎么辦?”Grace回答道:
“It is always easier to ask forgiveness than it is to get permission.”
(以后要道歉,比現(xiàn)在要拿到錢(qián)簡(jiǎn)單多了。)
這句話(huà)后來(lái)成為她一生中的至理名言之一。
當(dāng)初在寫(xiě)世界上第一個(gè)編譯器A-0時(shí),為了向能出錢(qián)的老板炫耀,Grace還設(shè)計(jì)了三個(gè)版本:英文版、德文版、法文版,表明編譯器不僅看得懂英文,也看得懂德文跟法文。但后來(lái)德文版和法文版的編譯器都沒(méi)再做下去。到1956年,她開(kāi)發(fā)出來(lái)一套很完整的程序語(yǔ)言,叫做FLOW-MATIC. 海軍采用了這套系統(tǒng) (這時(shí)Grace還是海軍的一員)。因?yàn)楹\姺鶈T廣大,如果各地自行稍加將編譯器修改一小部分,就會(huì)發(fā)生A地的程序在B地?zé)o法執(zhí)行的問(wèn)題。
于是Grace寫(xiě)了一套程序,用來(lái)檢查這些程序之間是不是采用同樣的編譯方式,稱(chēng)作Validation. 后來(lái)影響到民間,漸漸發(fā)展出一套新的語(yǔ)言,偏向于商業(yè)使用的語(yǔ)法,這套程序語(yǔ)言就是著名的COBOL (Common Business Oriented Language). 這也是Grace Hopper對(duì)計(jì)算機(jī)界的第二個(gè)重大貢獻(xiàn)。其實(shí),在那個(gè)年代總共只有三種程序語(yǔ)言:COBOL、ART、FORTRAN (IBM的產(chǎn)品). 有人把Grace叫做“COBOL之母”,這個(gè)稱(chēng)號(hào)雖然被學(xué)術(shù)界的某些人所反對(duì) (因?yàn)樗龥](méi)有直接參COBOL語(yǔ)言的設(shè)計(jì)工作),但她對(duì)COBOL的形成與發(fā)展所起的重大作用卻是世人一致公認(rèn)的。據(jù)20世紀(jì)80年代初的統(tǒng)計(jì),全美在運(yùn)行中的程序有80%是用COBOL語(yǔ)言編寫(xiě)的,由此可見(jiàn)COBOL語(yǔ)言對(duì)計(jì)算機(jī)應(yīng)用發(fā)展所起的作用。
后記
Grace Hopper是個(gè)非常amazing的人 (常被稱(chēng)為Amazing Grace),崇拜她的人相當(dāng)多。雖然她的事跡很多,但是還有很多有類(lèi)似事跡的人并沒(méi)有像她這樣受到眾人的崇拜。由其中一點(diǎn)我們可以看出來(lái):從1947年開(kāi)始 (二戰(zhàn)結(jié)束后第二年),她獲得了第一個(gè)榮譽(yù)博士學(xué)位 (賓州大學(xué)),從那以后,她先后被40多所大學(xué)授予榮譽(yù)博士學(xué)位,其中包括芝加哥大學(xué)、華盛頓大學(xué)、馬里蘭大學(xué)等知名學(xué)府。
各種婦女社會(huì)團(tuán)體和學(xué)術(shù)組織都曾授予Grace各種稱(chēng)號(hào)和獎(jiǎng)勵(lì)。1991年,布什總統(tǒng)在白宮授予她的“美國(guó)國(guó)家技術(shù)獎(jiǎng)” (National Medal of Technology) 是其中的最高獎(jiǎng)項(xiàng),她也是至今惟一獲此殊榮的美國(guó)女性。她的名言有很多,她自己最喜歡的,也是她最喜歡對(duì)所謂的“年輕人”說(shuō)的 (在她年老時(shí),她所謂的年輕人就是“年齡不到我的一半的人就叫做年輕人”),這句話(huà)是:
“A ship in port is safe, but that is not what ships are built for.”
|