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