編譯器與Debug的傳奇:女牛人Grace Murray Hopper小傳

感謝網友Xiao Nan的整理,文章轉載自:http://www.road2stat.com/cn/network_3c/grace_murray_hopper.html

GraceHopper

Grace Murray Hopper

引言

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是世界上第三個在電機計算機上寫程序的人。下面的照片就 是Mark計劃的工作人員。坐在中間的是Aiken教授,唯一的女性就是Grace Hopper, 背景爲Mark I.

The Harvard Mark Team 

榮耀

1945年9月9日,發生了一件對計算機界而言非常重要的軼事。那天的天氣很熱,工作人員把窗戶都打開了,後來 有一隻蛾飛了進來,結果那隻蛾死在一隻繼電器裏面,造成電路不通,機器死機,他們沒辦法算出他們要的結果。經過了近一天的檢查,Grace找到了那隻蛾, 她設法用她的髮夾把那隻蛾弄了出來,還把那隻蛾的屍體貼在她的管理日誌上,上面寫道:“就是這個Bug,害我們今天的工作無法完成。”這個消息傳開之後, 那個實驗室裏的人每逢老闆詢問爲何還沒做出結果時,都把過錯推給Bug. (那個實驗室裏的人們真是幸福啊 ..)

爾後,”bug” (小蟲) 和”debug” (除蟲) 這兩個本來普普通通的詞彙成了計算機領域中特指莫明其妙的“錯誤”和“排除錯誤”的專用詞彙而流傳至今。下面這張照片,就是當時的那隻蛾以及Grace的記錄。

grace_hopper_bug

Grace Hopper's Bug 

第二次世界大戰結束後,所有的後備軍人應當退役,但是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 (神一般的存在) 的照片。前者是開創計算機程序設計語言的早期領袖之一,後者是計算機程序算法的當代領袖之一。這是一張難得的合影。(強大的氣場,淚奔 ..)

Grace_Hopper_Knuth

Grace & 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_grave

Grave of Grace 

後記

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的語錄中有幾句比較有意思的話。

  • From then on, when anything went wrong with a computer, we said it had bugs in it.
  • The most dangerous phrase in the language is, “We’ve always done it this way.”
  • Humans are allergic to change. They love to say, “We’ve always done it this way.” I try to fight that. That’s why I have a clock on my wall that runs counter-clockwise.
  • Leadership is a two-way street, loyalty up and loyalty down. Respect for one’s superiors; care for one’s crew.
  • One accurate measurement is worth a thousand expert opinions.
  • Someday, on the corporate balance sheet, there will be an entry which reads, “Information”; For in most cases, the information is more valuable than the hardware which processes it.
  • We’re flooding people with information. We need to feed it through a processor. A human must turn information into intelligence or knowledge. We’ve tended to forget that no computer will ever ask a new question.
  • To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
  • They told me computers could only do arithmetic.
  • In pioneer days they used oxen for heavy pulling, and when one ox couldn’t budge a log, they didn’t try to grow a larger ox. We shouldn’t be trying for bigger computers, but for more systems of computers.
  • Life was simple before World War II. After that, we had systems.
  • We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington.
  • At any given moment, there is always a line representing what your boss will believe. If you step over it, you will not get your budget. Go as close to that line as you can.
  • I seem to do a lot of retiring.
  • I handed my passport to the immigration officer, and he looked at it and looked at me and said, “What are you?”

更多關於Grace Hopper的生平及故事,可點【這裏

優雅人生:格雷斯·霍珀和信息時代的創新

(計算機程序之母Grace Hopper的傳奇人生,以及計算機領域的發展和編程的記錄史)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章