COBOL語言創始人Grace Hopper:編譯語言之母
原創【51CTO獨家特稿】1992年1月1日,美國海軍少將,Grace Hopper(葛麗絲·霍普)博士在睡夢中與世長辭。她對計算機領域的貢獻不可磨滅,她發現了計算機程序中的第一個Bug,同時也創造了計算機世界最大的Bug——千年蟲(Y2K);她實現了第一個編譯語言和編譯器;創造了世界上第一種商業編程語言COBOL并為之后的高級程序設計語言定義了模型。
1906年,Grace Hopper出生在美國紐約一個中產階級家庭。Grace的童年是在身為美國海軍退役將軍的曾祖父身邊度過的,那時她常常坐在曾祖父的腿上,撫摸軍服上的各種裝飾,瞪大眼睛,聽老人講驚險的戰斗故事。這些,可能就是她選擇海軍作為自己終身職業的原因。
Grace在少年時代就才華出眾,特別是數學和物理方面表現超群。她在1928年獲得美國優等生榮譽,同年,取得了數學物理學士學位。利用獎學金,Grace進入耶魯大學深造,并在1930年獲得數學學士學位,成為耶魯大學第一位女博士。
第二次世界大戰期間,Grace加入軍隊,在那里,她得以與計算機親密接觸。她幸運地被任命為著名計算機專家霍德·艾肯(H.Aiken)博士的助手,參與Mark Ⅰ計算機的研制。她后來回憶說:“我成了世界上第一臺大型數字計算機的第三名程序員。”從此,Grace博士走上了軟件大師的成功之路。
Bug發現者和千年蟲制造者
Grace博士的主要任務是編寫程序,她為MarkⅠ,以及后續機器MarkⅡ、Mark Ⅲ編寫出大量軟件。在這期間,Grace博士在軟件設計領域的第一項重大“發明”,Bug誕生。
1946年,她在發生故障的MarkⅡ計算機的繼電器觸點里,找到了一只被夾扁的小飛蛾,正是這只小蟲子“卡”住了機器的運行。Grace博士順手將飛蛾夾在工作筆記里,并詼諧地把程序故障稱為“Bug”。Bug的意思是“臭蟲”,而這一奇怪的稱呼,后來演變成計算機行業的專業術語。雖然現代電腦再也不可能夾扁任何飛蛾,大家還是習慣地把排除程序故障叫做Debug(除蟲)。
那時的硬件極其昂貴,為了節省內存空間,Grace博士開始采用6位數字來儲存日期,即年、月、日各兩位。隨著COBOL語言的影響日愈擴大,這一習慣做法被人們沿用下來,到2000年前,居然變成了危害巨大的“千年蟲”,這當然是Grace博士始料不及的事。
編譯語言之母
二戰結束后,帶著美國海軍的嘉獎令,Grace博士陸續創造了計算機軟件領域一些列的豐功偉績。
1949年,她加盟第一臺電子計算機ENIAC發明人莫契利和埃克特創辦的公司,開始第一次使用“簡短指令代碼“ 為世界上第一臺儲存程序的商業電腦UNIVAC編寫多軟件。作為世界上第三位程序員,Grace博士在UNIVAC上編程時體會到編碼的效率和執行效率的不平衡。
按照她的想法,程序員的工作應該不是代碼工人,而是高水平的腦力勞動。程序員應該通過自己的知識提高編碼的效率,簡單來說,就是把一些繁重反復的工作交給電腦自己去完成。#p#
基于這些想法,1952年,在斯佩里·蘭德公司兼任系統工程師時,她率先研制出世界上第一個編譯程序A-O,能夠將類似英語的符號代碼轉換成計算機能夠識別的機器指令,并發表了第一篇關于編譯器的論文。到了50年代中期,她又開發出Flow-Matic語言,這是第一個英語數據處理的編譯程序,也是第一個運用詞語的計算機語言。后來,Flow-mafic被吸收進COBOL這個廣為使用的商業計算機語言,為COBOL高級語言誕生創造了基礎。
COBOL語言
1959年5月,在五角大樓支持下,她領導著一個工作委員會,成功地研制出第一個商用編程語言COBOL。
COBOL是一種面向數據處理的、面向文件的、面向過程(POL)的高級編程語言,是一種功能很強而又極為冗長的語言。適合于具有循環處理周期的環境(例如打印工資支票)以及數據操縱量相當大的環境。COBOL主要應用于商業數據處理領域,對各種類型的數據進行 收集、存儲、傳送、分類、排序、計算及打印報表、輸出圖象是它的強項。經過40多年的不斷修改、豐富完善和標準化,COBOL已發展為多種版本的龐大語言,在財會工作、統計報表、計劃編制、情報檢索、人事管理等數據管理及商業數據處理領域,都有著廣泛的應用。
COBOL語言最重要的特征是語法與英文很接近,可以讓不懂電腦的人也能看懂程序;編譯器軟件只需做少許修改,就能運行于任何類型的電腦。COBOL將程序和數據截然分開,因此,如果程序員要改變程序,他只需要改變前面編寫的程序部分,不必全改。這種語言有顯著的文件處理能力,它支持順序文件和直接存取文件,特別適用于管理存儲在磁帶或磁盤上的大量數據。Grace博士的COBOL語言是高級程序設計語言的第一步,定義了高級語言的雛形。
#T#當時,五角大樓的專家害怕這種語言的命運不會太長久,特地為它制作了一塊小小的墓碑。然而,COBOL語言不但留存下來,還被廣泛使用。1963年,美國國家標準局將它進行了標準化。用COBOL寫作的軟件,要比其他語言多得多,Grace博士也因此被譽為計算機語言領域的先驅人物。到今年(2009年),COBOL語言已經50歲,走過了半個世紀,依然被應用在軟件開發領域。
海軍少將
Grace博士生活在一個充滿變化的時代,為了時刻激勵自己創新意識,她在辦公室墻上掛了一個逆時針轉動的大鐘。她也經常告誡青年人,不必害怕變化,必須勇于創新。她堅信,現在的青年會比他們這輩人更勇敢地面對問題。美國海軍部門為了照顧她的身體,曾多次動員她退休,但每次都不得不將她重新請回來,因為離開了這位博學多才的軟件大師,許多事情根本無法運轉。
直到1986年,已獲得海軍少將軍銜的霍波,才Grace博士80歲高齡從海軍退休,繼續擔任DEC公司資深顧問。在波士頓,以美國軍隊的最高規格為她舉行了退休儀式。在告別演說中,Grace博士關注著未來:“我們年青的人民是屬于未來的,我們必須為他們創造未來。”
為表彰她對美國海軍的貢獻,有一艘驅逐艦被命名為“格蕾絲號”;加利福尼亞海軍數據處理中心也改稱“霍波服務Grace博士”。霍波一生Grace博士得許多殊榮,如計算機科學年度人物獎、國家技術獎等、海軍功勛服務獎、國防部卓越服務獎等等。1971年,為了紀念現代數字計算機誕生25周年,美國計算機學會特別設立了“格蕾絲·霍波獎”Grace博士發給當年最優秀的30歲以下的青年計算機工作者。因此,“霍波獎”Grace博士全球電腦界“少年英雄”的標志。
Grace Hopper博士珍惜生命,她希望能夠活到94歲,新世紀來臨的那一天(上世紀80年代末,千年蟲問題還沒有被發現,如果她想到問題的存在,一定會親自解決)。她是計算機界崇拜的軟件大師,事實上,她對計算機領域的貢獻不只是COBOL語言,Bug和千年蟲,更重要的是,她開創了程序語言的編譯時代,為現代編程語言提供了出行,解放了程序員的生產力,為計算機軟件打下了告訴發展的理論基礎和實例模型。
請記住Grace Hopper博士,美國海軍上將,世界第三位程序員,Bug發現者,編譯語言創始人和現代高級程序設計語言的奠基人。