台湾NCU大学徐家珍先生对计算机历史上的伟大女性Grace Murrry Hopper的介绍,非常好。
原始链接为:
http://libai.math.ncu.edu.tw/bcc16/
Grace Hopper (1906--1992) 本姓 Murray,Hopper 是夫家的姓。西元 1906 年 12 月 9 日在紐約出生。 Grace 的爸爸是個很特別的人物,在那個年代裡,很少有人家會供家裡的女生去受教育。 Grace 的爸爸不是個高級的知識份子,在當時的工作是個保險推銷員,後來得了病,將雙腿鋸掉,以木腿當作義肢。用義肢練習走路了一段時間後,他又開始從事拉保險的工作,所以他對這件事情相當樂觀,他常對他的三個子女(一個兒子、兩個女兒)說:「我用這雙木頭腿都可以出去工作,所以你們應該是任何事情都可以辦得到的,你們應該沒有辦不到的事情。」這些話對於孩子們的影響很深,三個小孩都讀到了大學,但是只有 Hopper 拿到了博士學位。
Hopper 回憶她小時候最喜歡上的課是數學課,特別是幾何課。為什麼她最喜歡上幾何課呢?因為她可以把她鉛筆盒裡所有有顏色的筆全部拿出來用。她從小還有一個特色,雖然她是個女孩子,可是她喜歡玩各種的器具,舉凡各種量角尺、計算尺,她都喜歡拿來玩,研究它們是用什麼原理作用的。她還有做一些很像男生的事情,她曾經在六、七歲的時候,把她家所有的鐘都拆開來,但是沒有一個有裝回去,因此受了很嚴厲的處罰。
Hopper 在 1928 年畢業於 Vassar 大學,取得了數學與物理的學士學位。隨後到耶魯大學攻讀碩士,並在 1930 年得到數學碩士。畢業後沒有繼續念博士,而是回到她的母校 Vassar 大學擔任教職。 1930 年 6 月 15 日與 Vincent Foster Hopper 結婚, Vincent 是紐約大學英文系教授,但是他在 1945 年時過世了,他與 Grace 沒有生育子女。結婚沒多久,Grace 就決定要攻讀博士,所以 Grace 一邊教書, 一邊在耶魯大學在職進修博士學位,並在 1934 年取得學位,前後只花了四年的時間,這算是相當快的。她的博士論文是寫:用一個幾何的方法去解決一個代數的問題,英文標題是 A new Criterion for Reducibility of Algebraic Equations,到這個階段為止,還看不出來這個人會跟計算機產生任何的關係。
1941 年,Grace 在她的人生中產生了極大的改變。當時歐戰爆發,Grace 有了從軍的念頭,她想加入海軍。當時女人從軍都是做後備軍人,大部分都是護士,再不然就是擔任後勤。如果是受過高等教育的女性,就會被分配要去做有關計算的工作,例如:計算彈道,讓前線的砲兵知道如何使用砲彈。 Grace 在受過半年的訓練後,因為有著相當高等的學位,所以被分派到的工作也比較高級,她被分派到哈佛大學的一個後勤的計算局 (Bureau of Ordinance Computation at Harvard University),當時的主持人是 Howard Aiken (1900--1973)。他是 1939 年的哈佛物理博士,也是 Mark Ⅰ、Ⅱ、Ⅲ、Ⅳ 這一系列電機計算機的設計及製造者。 Mark Ⅰ原來的名字是 ASCC (Automatic Sequence Controlled Calculator)。它是由哈佛與 IBM 合資建造的,完成於 1943 年,有 35 噸重,內部的線路總共有 500 英哩長。但是在 1944 年 Mark Ⅰ 啟用典禮之後,IBM 和哈佛鬧翻了,原因哈佛人認為 IBM 只是個出錢的財主, %D要的智能貢獻是哈佛人的功勞,而 IBM 認為自己也在工程上做了許多研究和創新,只是哈佛認為那些工程上的創新都不值一提。所以 IBM 就從哈佛的 Mark 計畫中抽腿,後來的十年間,IBM 在學術界的主要合作伙伴,變成了哥倫比亞大學。
Mark 系列計算機的設計理念,與 Babbage 的設計非常類似,但是增加了電動機械的幫助。 Mark I 的數值都是 23 位的十進制整數 (或定點數)。做一個加法要 6 秒,一個除法要 12 秒。 Aiken 持續在電機計算機方面發展,直到 1952 年的 Mark IV。到那時候,已經明顯可見,電機計算機的設計,必將輸給電子計算機。由此可見,精明如哈佛,也並非一開始就押對了寶。
根據 Grace 自己的說法,當她走進哈佛的計算工廠,第一眼看到那巨大、醜陋的 Mark I 時,就立刻愛上它了!其實,IBM 是很有格調的公司,他們設計了 Mark I 的外形,還不算醜陋啦。以下是一張 Mark I 的照片。
因為 Grace 從小就喜歡各種的計算尺,所以當她見到這個電動計算機時,她說這是她看過最有趣的計算尺。在她之前有兩個男生在 Mark 計算機上寫過程式,這兩個男生後來幫 Hopper 在三天之內寫出了她的第一個程式。所以算起來,Hopper 是第三個在電機計算機上寫程式的人。以下右邊的照片就是 Mark 計畫的工作群,中坐者是 Aiken,唯一的女性,當然就是 Grace Hopper。而背景就是 Mark I。從這些水手服,可以看出來,這是海軍開發的計畫。左邊的照片,就是當時 Hopper 在打了洞的紙卷上檢查程式的情形。 Mark I 的程式,就是靠這些打了洞的紙卷送進去。這個設計其來有自。早在 Babbage 設計分析機的時候,就考慮以卡紙傳送程式進入計算機。而且,資助 Mark I 的 IBM 公司本身,也是從打卡和讀卡機起家的。
1945 年 9 月 9 日,發生了一樁對電腦界而言非常重要的軼事。那天因為天氣很熱,他們都把窗戶給打開了,然後飛進來一隻蛾,結果那隻蛾被打死在一支繼電器裡面,造成電路不通,讓機器當機,使他們沒辦法算出他們要的結果。經過了近一天的檢查,Hopper 找到了那隻蛾,她用她的髮夾去把那隻蛾給弄出來,還把那隻蛾的屍體貼在她的管理日誌上,上面寫著:「就是這個 bug,害我們今天的工作無法完成。」這個消息傳開之後,那個實驗室裡的人每逢老闆詢問為何還沒做出結果時,都把過錯推給 bug。爾後,在電腦界中,遇到程式中有錯,就稱之為 bug。除錯叫做 debug。下面這張照片,就是當時的那隻蛾,以及 Hopper 寫的記錄。
1945 年二次大戰結束後,所有的後備軍人應當除役,但是 Grace Hopper 卻決定辭去 Vassar 那邊的教職,要專心的在 Aiken 的實驗室裡做個 progammer。 1949 年,Hopper 離開哈佛,到了費城,進入 Eckert 和 Mauchley 合開的電腦公司 (Eckert-Mauchley Computer Corporation)!A 擔任資深數學家,主要的工作是?忙設計軟體。這家公司設計出來的第一套電子計算機,也是全世界第三台,叫做 UNIVAC Ⅰ,在這上面發展一些組合語言出來。 1950 &~因經營不善,被 Remington Rand )狳祫吽C過沒多久, Remington Rand 又跟幾家小公司合併成立 Sperry。 Grace 一直在這家公司做資深數學家、程式設計人員,到 1971 年她 65 歲屆齡退休,才離開這家公司。
Grace 對電腦界的貢獻相當多,像是 bug 這個名詞的引用,只是一個小小的插曲,最大的貢獻是發明了全世界第一套的 compiler 叫做 A-0。在當時是沒有任何組合語言及程式語言存在的,所有的程式設計人員,都是要把程式翻譯成機器碼,就是翻成 0011000101.. 這樣的形式,在紙上打洞,再送到機器裡面去讀。 Grace 在進 Eckert-Mauchley 這家公司之後,她便有了一種想法,她想設計一種程式,讓人可以用類似英文的語法,把想做的事寫下來,然後用這個程式把英文翻譯成機器的語法,交給機器去執行。這個想法就是今日的 compiler(編譯器)。當初她提出這樣的構想時,眾人皆曰不可。所有人都告訴她電腦只能做計算,只能加減乘除,只能處理數字,電腦是不懂英文的。由此可見,在 1950 年代,大部分人尚未意識到電腦是用來處理資訊的工具,所有的人就是認為電腦是個計算機而已。 Grace Hopper 可能是第一個想到而且有機會做下去的人。爾後,Grace Hopper 就到處去演講,到處去跟人要錢來作這項計畫。這段期間,有很多她的朋友問她說:「妳怎麼這麼勇敢呢?萬一搞砸了,妳該怎麼辦?」,Grace Hopper 回答道:
It's always easier to ask forgiveness than it is to get permission.
在 1952 年 Grace 終於發展出第一套實驗性的編譯器,在 Sperry 的機器上可以執行的,叫做 A-0,後來又發展了 A-1、 A-2。當初在寫 A-0 時,為了向出錢的老闆炫耀,她還設計了三個版本:英文、德文、法文。她給人看 compiler 不僅可以看得懂英文,也看得懂德文跟法文。但是後來德文跟法文的 compiler 都沒再做下去。後來 Grace Hopper 漸漸發展她的 compiler 在 UNIVAC Ⅰ & Ⅱ 上面能夠執行, 1956 年她已經做出來一套蠻完整的程式語言,叫做 FLOW-MATIC,海軍採用了這套系統 (這時 Grace Hopper 還是海軍的一員)。後來海軍跟一些民間的公司想要把 FLOW-MATIC 變得更標準一點,這也是 Grace Hopper 第二個對電腦界重大的貢獻。因為海軍幅員廣大,各地因為自行稍加將 compiler 修改一小部份,以致發生 A 地的程式在 B 地可能無法執行的問題。 Grace Hopper 寫了一套程式,用來檢查這些程式之間是不是用同樣的編譯方式,稱作 Validation。後來影響到民間,漸漸發展出一套新的語言,偏向商業用的語法,這套程式語言就是著名的 COBOL (COmmon Business Oriented Language)。在那個年代只有三種程式語言,COBOL、ART、FORTRAN (IBM 的產品)。
1966 年 Grace Hopper 滿六十歲,海軍又叫她退休了,因為她當時的官階是海軍的中校,六十歲就該屆齡退休了。在退休的那一天,Grace Hopper 說這是她一生中最悲傷的一十了,因為人家已經告訴她她太老了。可是海軍在她退休後沒多久,發現沒有她是不行的,因為海軍裡還有很多電腦化、自動化、正規化的工作尚未完成,所以在她退休的五個月後,海軍就要求她復職。所以在她退叼的半年後 (1967 年 8 月 1 日),又回到了海軍,回去之後擔任了好幾個海軍的計算中心的主持人或是顧問,指揮那些海軍的技術人員,到處去演講、宣傳她的觀念、管理觀。其中,有件很有趣的事,她在演講之中,總是沒有辦法讓她的聽眾懂得什麼是 nanosecond (十億分之一秒)。多快的時間是一個 nanosecond? Microsecond(百萬分之一秒) 跟 nanosecond 差多少的時間?你很難去解釋,因為它們都是很短很短的時間,相差了一千倍。 Grace 想到了個點子,她跑去工程部切了段電線,這節電線是 11.78 英吋她就拿著這將近一呎的電線跟聽眾說:「這個長度就是電波在一個 nanosecond 可以跑的距離」,同時她又拿了好幾捆的電線放到桌上,差不多一千呎 (約莫三百三十三公尺) 的電線,就是一千倍,然後她就說:「這個長度就是電波在一個 microsecond 可以跑的距離」此時,聽眾就清楚了,所以她說:「你們要小心,絕對不要隨便浪費一個 microsecond 的電。」左邊的照片,就是 Hopper 拿著她的 nanosecond 演講的鏡頭。
後來有一位參議員,他從來都沒見過 Grace Hopper。但是他聽說了這個人以後,就私下做了點調查,然後他在國會裡面主動提出 Hopper 的申請案。他認為這樣重要的女性不應該海軍裡面只作一個校官而已,覺得她應該做將官。在國會裡面,很快的通過這個提案,就通知了海軍,海軍就將 Hopper 升職了,所以她就變成了海軍少將,是美國第一個女性到達這個官階的人,在 1985 年 11 月得到了這個官階。在 1986 年,她七十九歲,是所有活著的、最老的、還沒除役的美國軍官。此時是她第二度要退休。
在她的退休的 party 上,總共來了兩千多個人,有認識的,也有不認識的。她退休之後,又跑去跟 Digital 公司簽約,Digital 公司聘請她代表他們演講、推銷他們公司的產品。Digital 公司當時主要的產品是 minicomputer。事實上,在 1986 年 PC 已經出來了,那時候叫做 microcomputer。在海軍裡,Grace Hopper 極力推展使用 PC 的人之一。她在這方面也有一句名言。她說在古老的時候,人都是用牛跟馬來拖東西,後來人類發展越來越蓬勃,東西越來越重,但是人們沒有發明更大更壯的物種來搬運東西;事實上,人們是用更大一批的牛跟馬來做這些更加粗重的工作。她用這個比喻來說,電腦不應該越做越大,應該用小小的東西,但是用一大堆來做要做的事情。
Grace Hopper 逝世於 1992 的新年(一月一日)的凌晨,在參加了新年 party 之後。確實時間不明。她生前的一個心願是,活到西元 1999 年 12 月 31 日的晚上,因為她說她想參加那一場 party。顯然,Grace Hopper 是個很喜歡 party 的人。
Grace Hopper 是個非常 amazing 的人,顯然崇拜她的人相當多。雖然她的事蹟很多,但是很多跟她有一樣事蹟的人並沒有像她這樣受到眾人崇拜。由其中一點我們可以看得出來。從 1947 &~開始 (二次大戰結束後第二年),她獲得了第一個榮譽博士學位 (賓州大學),然後很長一段時間後,自 1976 年開始,她到處獲得榮譽博士學位,她一生獲得了四十個以上的榮譽博士學位。她的名言有很多,她自己最喜歡的,也是她最喜歡對所謂的年輕人說的,在她年老時,她所謂的年輕人就是「年齡不到我的一半的人就叫做年輕人」,這句話是
A ship in port is safe, but that is not what ships are built for.
課外讀物:[1] Aiken 的簡傳 http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Aiken.html[2] Michelle Hoyle 的計算機簡史講義 http://www.eingang.org/Lecture/toc.html