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