感謝網友Xiao Nan的整理,文章轉載自:http://www.road2stat
1992年1月7日,華盛頓阿靈頓國家公墓,美國海軍爲在元旦凌晨睡夢中安然去世的退休海軍女軍官格蕾絲·穆雷·赫柏 (Grace Murray Hopper) 舉行了隆重的葬禮。海軍儀仗隊和衆多肅穆的海軍官兵按照海軍的禮儀向這位使人尊敬的長者做最後的告別。千千萬萬的美國人則經過電視轉播觀看了葬禮的實況。 四年後的1996年1月6日,美國海軍在緬因州的巴斯港 (Bath, Maine) 爲它新建造的一艘阿利·伯克級驅逐艦舉行了隆重的命名儀式,把它命名爲「赫柏號」。這是第二次世界大戰之後第一次、整個美國海軍歷史上第二次以一位女性的 名字命名一艘戰艦。算法
Grace Hopper (1906–1992), 本姓Murray, Hopper爲夫姓。1906年12月9日生於美國紐約一個海軍世家,其祖父軍銜曾達少將。她的外祖父則是一名高級土木工程師,經常帶着她去上班,她也十 分高興地去幫着扶紅白相間的測量桿,這培養了她對於幾何學和數學的興趣。Grace的父親因患動脈硬化致使雙腿截肢,長期住院,這使得做爲長女的她從小就 更加懂事和勤奮。編程
Grace回憶她小時候最喜歡上的課是數學課,特別是幾何課。由於在幾何課上,她能夠把鉛筆盒裏全部彩色的筆所有拿出來用。雖然她是個女孩子,但是 各類量角器、計算尺她都喜歡拿來玩,研究它們的原理和做用。她還作過一些很像男孩子作的事情:她曾經在6、七歲的時候,把家裏全部的鐘都拆開,可是沒有一 個成功裝回去,所以還受到了嚴厲的處罰。app
進入大學以前,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作到了:她在碩士畢業後被母校瓦薩學院聘任,短短几年就從助教升到副教授。不過,到這個階段爲止,咱們還看不出來她會跟計算機產生任何關係。ide
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在學術界的主要合做夥伴,變成了哥倫比亞大學。(都是牛校中的牛校啊 ..)ui
Grace從小就喜歡各類計算尺,當她走進哈佛的計算工廠見到這臺電機計算機時,她說這是她看過最有趣的計算尺。在她以前,有兩個男生在Mark上 寫過程序,這兩個男生後來幫助Grace在三天以內寫出了她的第一個程序。因此算起來,Grace是世界上第三個在電機計算機上寫程序的人。下面的照片就 是Mark計劃的工做人員。坐在中間的是Aiken教授,惟一的女性就是Grace Hopper, 背景爲Mark I.this
1945年9月9日,發生了一件對計算機界而言很是重要的軼事。那天的天氣很熱,工做人員把窗戶都打開了,後來 有一隻蛾飛了進來,結果那隻蛾死在一隻繼電器裏面,形成電路不通,機器死機,他們沒辦法算出他們要的結果。通過了近一天的檢查,Grace找到了那隻蛾, 她設法用她的髮夾把那隻蛾弄了出來,還把那隻蛾的屍體貼在她的管理日誌上,上面寫道:「就是這個Bug,害咱們今天的工做沒法完成。」這個消息傳開以後, 那個實驗室裏的人每逢老闆詢問爲什麼還沒作出結果時,都把過錯推給Bug. (那個實驗室裏的人們真是幸福啊 ..)
爾後,」bug」 (小蟲) 和」debug」 (除蟲) 這兩個原本普普統統的詞彙成了計算機領域中特指莫明其妙的「錯誤」和「排除錯誤」的專用詞彙而流傳至今。下面這張照片,就是當時的那隻蛾以及Grace的記錄。
第二次世界大戰結束後,全部的後備軍人應當退役,可是Grace Hopper卻決定辭去瓦薩學院的教職,專心在Aiken的實驗室裏作個Programmer. 1949年,Grace離開哈佛來到費城,進入Eckert和Mauchley合開的計算機公司 (Eckert-Mauchley Computer Corporation) 擔任資深數學家,主要工做是設計軟件。這家公司設計出來的第一套電子計算機,也是全世界的第三臺電子計算機,叫作UNIVAC I. 1950年公司因經營不善,被Remington Rand收購。沒過多久,Remington Rand又跟幾家小公司合併成立了Sperry. Grace一直在這家公司作資深數學家和程序設計人員,到1971年65歲退休,她才離開這家公司。
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頒獎給Donald E. Knuth (神通常的存在) 的照片。前者是開創計算機程序設計語言的早期領袖之一,後者是計算機程序算法的當代領袖之一。這是一張可貴的合影。(強大的氣場,淚奔 ..)
1966年,Grace Hopper滿60歲。她當時的官階是海軍中校,而海軍中校60歲就該退休了。退休的那一天,Grace說這是她一輩子中最悲傷的一天,由於別人已經告訴她:她太老了。但很快,海軍發現離了Grace還不行——有個工資管理程序重寫了823次還 是不能正常運行。所以,她剛從海軍退休半年就又被海軍召回從新服役,負責海軍系統計算機高級語言的標準化和普及工做,而且一干就是20年,直到1986年 8月14日才正式最後退休。這期間她的軍銜一再提高,1985年被提高爲少將。因爲這超過了美國法律規定的軍官服役年齡,國會還經過了專門的法律使對 Grace的任命合法化。在波士頓的「憲法號」戰艦上向Grace授予「國防部優秀服役勳章」(Defense Distinguished Service Medal) 併爲她退休舉行的隆重儀式上,Grace在致詞中自豪地說她是WAVES成員中最後一個離開崗位的人:她40歲時就被告知她太老了不宜繼續在部隊中工做, 而她卻仍然穿着制服又幹了整整40年!
重返海軍期間,她擔任了好幾個海軍計算中心的主持者或是顧問,指揮海軍的技術人員,處處去演講,宣傳她的觀念。其中,有一件頗有趣而且頗有名的事 情。她在演講之中,老是沒有辦法讓聽衆聽懂什麼是nanosecond (十億分之一秒). 多長的時間是一個nanosecond? 而microsecond (百萬分之一秒) 又跟nanosecond差多少? 這一點很難去解釋,由於它們都是極短極短的時間,但相差了一千倍。 Grace想到了個點子,她跑到工程部切了段電線,這段電線長11.78 英寸 (約合0.3米),她就拿着這將近1英尺的電線跟聽衆說:「這個長度就是電波在一個nanosecond能夠跑的距離。」同時,她又拿了好幾捆電線放到桌 上,差很少有1000英尺 (約合300米) ,而後她就說:「這個長度就是電波在一個microsecond能夠跑的距離。」此時,聽衆就明白了。因此她說:「大家要當心,絕對不要隨便浪費一個 microsecond的電。」
其間,有一位參議員,他歷來沒見過Grace,可是他據說了這我的之後,就私下作了些調查,而後在國會裏面主動提出了關於Grace的申請案。他認爲這樣重要的女性不該該在海軍裏面只作一個校官而已, 以爲她應該作將官。國會很快就經過了這個提案,而後通知了海軍,海軍就將Grace升職了,因而,在1985年11月,Grace成爲了海軍少將,她是美國第一個到達這個官階的女性。1986年,她七十九歲,是全部在世的、最年長的、還沒有退役的美軍軍官。此時的她,即將正式退休。
Grace退休的Party上來了2000多人,有她認識的,也有她不認識的。在正式退休以後,她又跟Digital公司簽約,Digital公司 聘請她表明他們演講、推銷他們公司的產品。Digital公司當時主要的產品是Minicomputer. 事實上,在1986年時PC已經出現,那時叫作Microcomputer. 在海軍裏,Grace Hopper是極力推行使用PC的人之一。她在這方面也有一句名言。她說,在古老的時候,人們都是用牛和馬來拉東西,後來人類社會發展得愈來愈蓬勃,東西 愈來愈重,可是人們並無使用更大更壯的物種來搬運東西。事實上,人們是用更多的牛和馬來作這些更加粗重的工做。她用這個比喻來講,計算機不該該越作越 大,而應該用小型的、大量的計算機一塊兒來作要作的事情。(原來Grace在20多年前就提出了並行計算?)
Grace Hopper逝世於1992年1月1日凌晨,在參加了新年Party 以後,準確時間不明。她生前的一個心願是活到1999年12月31日的晚上,由於她說她想參加那一場Party. 顯然,Grace是個很喜歡Party的人。
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.」
下面Grace的語錄中有幾句比較有意思的話。
更多關於Grace Hopper的平生及故事,可點【這裏】
(計算機程序之母Grace Hopper的傳奇人生,以及計算機領域的發展和編程的記錄史)