智慧應用 影音
工研院
ST Microsite

寫程式的女將軍

林一平手繪之哈普(左)與艾肯(右)。林一平

寫電腦程式,如有錯誤,就必須診錯。診錯又稱為「抓蟲」(debug) 。電腦出錯,我們說電腦有蟲(computer bug),典故為何已不太清楚,但這個詞兒確定是因為美國海軍的女將軍哈普(Grace Hopper)的宣傳而眾周所知。哈普是最早期的電腦軟體工程師,修改程式,替電腦抓蟲,是家常便飯。然而軟體工程師如何當上女將軍?

哈普是耶魯大學的數學博士,由於出身軍人世家,嚮往軍旅生涯,因此在1943年投筆從戎。當時哈普34歲,體重105磅。對於這位超齡超重的女生,美國海軍勉為其難的讓她加入後備役中心受訓。結訓後,掛階成為海軍上尉,和Mark I電腦的主要設計者艾肯(Howard Hathaway Aiken)一起工作。

哈普回憶她第一天到職時,艾肯的歡迎辭是: 「你到底去哪兒了(Where the hell have you been)? 」然後指著Mark I電腦說: 「在這兒,下週四前計算圓弧切序列的係數。」於是她成為Mark I的第三位程式設計師,主要工作是在不同的天候,24小時不停的校正海軍砲管的瞄準角度。

哈普顯然很耐操,艾肯指定的任務她都能使命必達。「電腦抓蟲」的第一次書面報告是由哈普所記錄。「蟲」(bug)一詞很早就被工程師用來敘述難以捉摸的瑕疵,例如1878年愛迪生就以「蟲」來形容不易診錯的硬體設計。有一次Mark II的成員由電腦移除一隻導致繼電器(Relay)故障的2英吋飛蛾。哈普說: 「從那時起,當電腦出了什麼問題,我們說它有蟲。」替電腦抓蟲的說法,因此廣為人知。

雖然因工作優異被記功,海軍仍然暗示哈普,告訴她40歲後還在當兵,年紀未免太大了。哈普只好離開海軍,於1949年加入剛成立的埃克特-莫奇利電腦公司(Eckert-Mauchly Computer Corporation),為UNIVAC I電腦寫出全世界第一個編譯器(Compiler)。

哈普敘述她發明編譯器的理由,是因為她很懶惰,不想寫機器碼,希望「程式師可以回歸成為數學家」有人開玩笑的告訴哈普:「但是格蕾絲,以後阿狗阿貓都可以寫程式了。」換言之,當一般人都能寫程式後,這群寫機器碼的專家,還有工作嗎?

哈普設計的第一個編譯器將數學公式翻譯為機器碼。她接下來想將英文指令(english commands) 翻譯為機器碼。大家都認為她的想法太瘋狂,不切實際。結果她成功了,發展出商業化的FLOW-MATIC編譯器。這個編譯器深深影響到後來廣為金融商務使用的電腦語言COBOL (Common Business-Oriented Language) 的設計。在哈普的創見後有人陸續在編譯器的發展進行研究,例如波黎士(Alan Jay Perlis)因為在編譯器研究的貢獻成為第一位圖靈獎(Turing Award)的得主。

現為國立陽明交通大學資工系終身講座教授暨華邦電子講座,曾任科技部次長,為ACM Fellow、IEEE Fellow、AAAS Fellow及IET Fellow。研究興趣為物聯網、行動計算及系統模擬,發展出一套物聯網系統IoTtalk,廣泛應用於智慧農業、智慧教育、智慧校園等領域/場域。興趣多元,喜好藝術、繪畫、寫作,遨遊於科技與人文間自得其樂,著有<閃文集>、<大橋驟雨>。