立場新聞 Stand News

誰是 Grace?

2021/4/18 — 16:58

圖:葛蕾斯攝於 1978 年 (取自維基百科)

圖:葛蕾斯攝於 1978 年 (取自維基百科)

作者/張瑞棋,1987 年清華大學工業工程系畢業,1992 年取得美國西北大學工業工程碩士。自小喜愛科學新知,浮沉科技業近二十載後,退休賦閒在家,更成為重度閱讀者。當了中年大叔才成為泛科學專欄作者,著有《科學史上的今天》一書。

近年來 Nvidia 總是以科學家做為處理器架構的名稱,來向他們致敬。例如 2016 年的帕斯卡 (Pascal)、2017 年的伏打 (Volta)、2018 年的圖靈 (Turing),以及 2020 年的安培 (Ampere)。但前幾天發表的新一代處理器架構取名為葛蕾斯 (Grace),讓很多人滿臉問號,不知道這是何方神聖。

葛蕾斯的全名是 Grace Murray Hopper;Hopper 是夫姓,Murray 則是結婚前原來的姓氏。她離婚後便一直維持單身,但仍繼續沿用夫姓,並未更動。這或許是為什麼 Nvidia 這次特地改用她的名字,而不是姓氏,來為產品命名的原因。

廣告

葛蕾斯 1906 年出生於紐約,擁有數學博士學位。美國加入二次世界大戰後,熱血的葛蕾斯辭去大學教職,於 1943 年進入海軍預備軍官學校受訓。第二年她以第一名的成績畢業,官拜上尉,卻被派往哈佛大學,向海軍少校艾肯 (Howard Aiken) 報到。葛蕾斯頓時傻眼,自己特意投筆從戎,怎麼繞了一圈,又要重返校園?

原來艾肯博士是剛竣工的電腦「哈佛一號」(Harvard Mark I) 的設計者。他與葛蕾斯相反,是被徵召入伍,才不得不離開哈佛大學的。艾肯一心想要心血結晶回到自己手中,因此極力鼓吹這台電腦的威力,成功促成海軍徵用哈佛一號,他也如願代表海軍前往接管。艾肯看上葛蕾斯的數學背景,希望她為哈佛一號編寫程式,進行彈道之類的計算。

廣告

當時寫程式可不是像現在這樣,看著螢幕,在鍵盤上輸入類似英文語法的指令。首先,你沒辦法用鍵盤直接輸入程式,必須在紙帶上的不同位置打洞,再將這卷打孔紙帶餵給哈佛一號。(這已經不錯了,同時間美國陸軍委託賓州大學打造的電腦 ENIAC,還不能讀紙帶,必須插拔一堆電纜線呢。)

更麻煩的是,你只能寫電腦懂的「機器語言」,告訴它哪些繼電器要開或關。這當然非常麻煩又容易出錯,於是葛蕾斯努力將撰寫程式系統化,最後寫出世上第一本程式設計手冊。

二次大戰結束後,海軍委託艾肯開發後續機種,葛蕾斯也以預備軍官的身分,繼續留在哈佛大學協助。有一天,葛蕾斯的同袍發現哈佛二號總是出錯,卻又看不出程式哪裡有問題,最後才發現原來是一隻蛾停在繼電器上造成短路。後來電腦程式的除錯工作叫做 ”debug”,據信就是源自於此。許多文章(包括中文維基百科)誤把這件事歸之於葛蕾斯,也應該 debug 一下。

1949 年,葛蕾斯加入 ENIAC 的兩位發明人莫奇利 (John Mauchly) 與艾科特 (J. Presper Eckert) 所創的電腦公司。她深知用機器語言撰寫程式的痛苦與不便,決定開發一套轉換系統,自動將邏輯和數學符號轉換成機器語言。這樣一來,數學家不用瞭解電腦的硬體線路,也可以撰寫程式。葛蕾斯於 1952 年完成這個轉換系統「A-0」,可算是史上第一個「編譯器」(compiler)。

不過葛蕾斯更希望不是只有數學家才能當程式設計師。如果程式語言可以採用一般英文的語法,而不是各種數學符號,那麼不用懂太多數學也能撰寫程式。於是葛蕾斯於 1955 年推出第一個基於英文語法的程式語言「FLOW-MATIC」,讓更多人都能成為程式設計師。

雖然基於英文語法的高階語言讓寫程式變得比較簡單,但各家電腦公司都有一套自家電腦專用的語言,彼此不能互通,使得開發應用軟體的成本居高不下。於是美國國防部於 1959 年出面召開會議,廣邀業者共同制定一套商業用途為主的資料處理語言,也就是第一個通用的程式語言 COBOL。由於它主要參考了 FLOW-MATIC 的語法,加上葛蕾斯是這場會議的技術顧問,因此也有人認為葛蕾斯是「COBOL 之母」。

1966 年,葛蕾斯因年滿 60 歲,自海軍後備隊退役,但幾個月後又被徵召協助整合海軍的電腦系統,直到 79 歲才以准將的官階光榮退休,成為最高齡退役的美國部隊軍官。葛蕾斯退而不休,隨即擔任迪吉多電腦 (Digital Equipment Corporation) 的顧問,直到 1992 年過世為止。

從第一本程式設計手冊、第一個編譯器,到第一個採用英文語法的程式語言,葛蕾斯因為在電腦上的卓越貢獻,而獲獎無數。不過她曾在一次頒獎典體上表示:「若要問我最引以為傲的成就是什麼,答案是我過去曾教導過的那些年輕人。這比寫出第一個編譯器重要多了。」

其實她幫助的豈僅止於她親自教導過的人。現在那麼多年輕人可以成為程式設計師,也是間接受惠於她一生為程式設計的普及所做的努力。

原文刊於作者 Facebook 專頁

發表意見