1966 年圖靈獎獲得者:
艾倫·佩利
———ALGOL 語言和計算機(jī)科學(xué)的“催生者”
艾倫·佩利(Alan J.Perlis)由于在ALGOL語言的定義和擴(kuò)充上所作出的重大貢獻(xiàn),以及在創(chuàng)始計算機(jī)科學(xué)教育,使計算機(jī)科學(xué)成為一門獨(dú)立的學(xué)科上所發(fā)揮的巨大作用而成為首屆圖靈獎當(dāng)之無愧的獲得者。
佩利1922年4月1日生于美國賓夕法尼亞州的匹茲堡。在卡內(nèi)基理工學(xué)院(現(xiàn)卡內(nèi)基-梅隆大學(xué))所學(xué)的專業(yè)是化學(xué),1942年畢業(yè)取得學(xué)士學(xué)位。因當(dāng)時還處于第二次世界大戰(zhàn)期間,而且在珍珠港事件后美國已宣布正式參戰(zhàn),因此佩利被應(yīng)征入伍,在空軍服役。戰(zhàn)后他進(jìn)入加州理工學(xué)院研究生院繼續(xù)深造,改學(xué)數(shù)學(xué),于1947年取得碩士學(xué)位,然后又到麻省理工學(xué)院(MIT)攻讀博士學(xué)位,于1950年取得該學(xué)位。1951年他在美國陸軍軍械部設(shè)在馬里蘭州的阿伯丁試驗基地內(nèi)的“彈道研究實(shí)驗室冶(馮·諾伊曼曾在該研究實(shí)驗室當(dāng)顧問)工作了一年,然后回到母校麻省理工學(xué)院參加“旋風(fēng)”(Whirlwind)計算機(jī)計劃,為“旋風(fēng)”編制程序。為了說明佩利參與的“旋風(fēng)”計劃的意義,我們先簡要回顧一下計算機(jī)誕生初期的發(fā)展歷史。
大家知道,世界上第一臺電子計算機(jī)叫做“ENIAC”(這是Electronic Numerical Integrator andComputer的詞頭縮寫,意為“電子數(shù)字積分器和計算機(jī)”),是賓夕法尼亞大學(xué)莫爾學(xué)院根據(jù)上述阿伯丁彈道研究實(shí)驗室為各種火炮計算彈道、編制射擊表的需要于1943年6月與聯(lián)邦政府簽訂10萬美元的合同而研制的。項目由約翰·莫奇利(JohnWil鄄liam Mauchly, 1907—1980)負(fù)責(zé)邏輯設(shè)計,伊克特(John PresperEckert,Jr,1919—1995)負(fù)責(zé)電路設(shè)計。ENIAC是一臺十進(jìn)制并行計算機(jī),能同時處理10個十進(jìn)制數(shù),采用電子管電路,時鐘頻率為100 000 Hz,加法時間為0.2ms,乘法時間為2.8 ms,是一個占地1 500 ft2 (約139m2),重30 t,功耗150kW的龐然大物。它于1946年2月完成,未能參加第二次世界大戰(zhàn),但被洛斯阿拉莫斯(LosAlamos)國家實(shí)驗室用于計算原子彈爆炸的突變問題,后來又曾用于阿伯丁的空軍試驗場,一直運(yùn)行到1955年10月才停止工作。世人一直公認(rèn)莫奇利和伊克特是ENIAC的發(fā)明者,但后來在兩家計算機(jī)公司的訴訟中,法院判定他們剽竊了約翰·阿塔那索夫(JohnVincentAtanasoff,1903—1995)的構(gòu)思和設(shè)計。這個涉及世界上第一臺電子計算機(jī)的發(fā)明權(quán)案件曾經(jīng)轟動美國。但有趣的是,雖然阿塔那索夫確實(shí)曾在1941年把自己關(guān)于構(gòu)思計算機(jī)的設(shè)想告訴過莫奇利,后者也確實(shí)因此受到啟發(fā)而寫出了有關(guān)論證報告并設(shè)計出了ENIAC,但社會輿論似乎并不支持法院的判決,現(xiàn)在一提到ENIAC,幾乎眾口一詞地仍然說是莫奇利和伊克特發(fā)明的,沒有人說是阿塔那索夫發(fā)明的,這對美國法院的判決真是一種諷刺。
ENIAC雖然作為世界上第一臺電子計算機(jī)而被載入史冊,但它不具備存儲程序的能力,程序要通過外接電路板輸入。要改變程序必須改接相應(yīng)的電路板,對于每種類型的題目,都要設(shè)計相應(yīng)的外接電路板。這不是理想的結(jié)構(gòu),不符合馮·諾伊曼早就提出的存儲程序的設(shè)想。那么世界上第一臺存儲程序式計算機(jī)是哪一臺呢·有些資料認(rèn)為是前面曾經(jīng)提到過的曼徹斯特大學(xué)的MARK 玉,但現(xiàn)在一般說法是英國劍橋大學(xué)威爾克斯(M. V. Wilkes,1967年圖靈獎獲得者)設(shè)計和完成于1949 年5月的EDSAC。實(shí)際上,最早開始設(shè)計與實(shí)施存儲程序式計算機(jī)的還是莫爾學(xué)院的EDVAC(Electronic DiscreteVariable Automatic Computer的詞頭縮寫,意為“電子分離變量自動計算機(jī)”)。這是1945年3月(當(dāng)時ENIAC正處于安裝調(diào)試階段),由馮·諾伊曼本人與莫奇利、伊克特等人經(jīng)過兩天會談、討論后制定的設(shè)計方案,采用電子管和半導(dǎo)體二極管,用用水銀延遲線做存儲器,時鐘頻率為1MHz,字長為32位。由于ENIAC的原因,EDVAC的研制從1947年才開始,加上莫奇利和伊克特兩人后來因故離開了莫爾學(xué)院,使工程遇到了困難,1952年(有的資料說1951年)才完成,這才使威爾克斯的EDSAC“后來居上”(詳見后面關(guān)于威爾克斯的介紹)。
但不管EDSAC也好,EDVAC也好,都是串行計算機(jī)(serialcomputer),即數(shù)據(jù)的傳送和運(yùn)算是按位逐一進(jìn)行的,這樣的計算機(jī)運(yùn)算部件少,運(yùn)算也簡單,但速度慢,不能滿足某些應(yīng)用的需要。那么世界上第一臺存儲程序式的并行計算機(jī)是哪一臺呢·這就是前述“旋風(fēng)”計算機(jī)!靶L(fēng)”的主要設(shè)計者和研制者是MIT的弗里斯特(JayWrightForrester)。弗里斯特也是在受軍方委托,用風(fēng)洞來研究飛機(jī)穩(wěn)定性時根據(jù)數(shù)據(jù)處理的需要而設(shè)計“旋風(fēng)”的!靶L(fēng)”受EDVAC的影響采用存儲程序方式,但鑒于處理飛機(jī)穩(wěn)定性需要2000 條以上指令,必須改串行為并行,但又要考慮機(jī)器體積不宜過大的因素,因此設(shè)計成16位字長的并行計算機(jī)!靶L(fēng)”的另一項創(chuàng)新是采用英國曼徹斯特大學(xué)威廉斯發(fā)明不久的陰極射線管做內(nèi)存儲器。“旋風(fēng)”的研制工作從1946年開始,1950年試運(yùn)行成功。20世紀(jì)50年代冷戰(zhàn)加劇的形勢下,美國軍方對“旋風(fēng)”寄予了極大希望,空軍每年投資100萬美元(試比較一下,ENIAC的總經(jīng)費(fèi)才10萬美元),MIT也專門成立了著名的“林肯實(shí)驗室”,以弗里斯特原先的實(shí)驗室為核心,研究“旋風(fēng)”的軍事應(yīng)用。1951年,“旋風(fēng)”與當(dāng)時著名的SAGE(SemiAutomaticGroundEnvironment,即半自動地面防空系統(tǒng),包括全美17個防區(qū))首次實(shí)現(xiàn)連接,把位于卡德角的防空警戒雷達(dá)所截獲的信息送到MIT,由“旋風(fēng)”計算機(jī)進(jìn)行處理、分析和存儲。這是歷史上計算機(jī)與通信的第一次結(jié)合。弗里斯特還在20世紀(jì)40 年代末和美籍華人科學(xué)家兼企業(yè)家王安(WangAn,1920—1990)幾乎同時分別獨(dú)立地發(fā)明了磁芯存儲器,并把它用在“旋風(fēng)”中以代替陰極射線管存儲器,從而進(jìn)一步大大提高了“旋風(fēng)”的性能。
佩利在“旋風(fēng)”上工作到1952年9月。之后他來到普渡大學(xué),在那里他創(chuàng)建了全美大學(xué)中的第一個計算中心,開創(chuàng)了在大學(xué)中建立計算中心的先河。他出任普渡大學(xué)計算中心的第一任主任。在他的努力下,計算中心先安裝了一臺IBM的CPC計算機(jī)(CardProgrammed Calculator),以后更新為Datatron205。佩利為之設(shè)計了稱為IT(InternalTranslator)的語言,并開發(fā)了IT的編譯器。1956年佩利轉(zhuǎn)到卡內(nèi)基理工學(xué)院,“故伎重演冶,又推動該校成立了計算中心并出任主任,配置了IBM 650計算機(jī)。佩利把他在普渡大學(xué)開發(fā)的IT及其編譯器移植到IBM 650上,并被美國許多大學(xué)所采用。在IT 的基礎(chǔ)上,佩利和史密斯(J. Smith)、佐輪(H.Zoren)、伊萬斯(A. Evans)等人一起為IBM650設(shè)計并開發(fā)了新的代數(shù)語言和匯編語言。這些工作奠定了佩利作為計算機(jī)程序設(shè)計語言的先行者的地位。因此,當(dāng)ACM于1957年成立程序設(shè)計語言委員會以便與歐洲的同行合作,設(shè)計通用的代數(shù)語言的時候,佩利被理所當(dāng)然地作為最佳人選被任命為這個委員會的主席。
1958年,在蘇黎世舉行的ACM小組和以當(dāng)時聯(lián)邦德國應(yīng)用數(shù)學(xué)和力學(xué)協(xié)會GAMM為主的歐洲小組的聯(lián)合會議上,兩個小組把他們關(guān)于算法表示法的建議合二為一,形成了ALGOL58(最初叫做“國際代數(shù)語言”, 即International Algebraic Language, 簡稱IAL。后來改叫ALGOL58)。在ALGOL 58 的基礎(chǔ)上,1960年1月在巴黎舉行的有全世界一流軟件專家參加的討論會上,確定了程序設(shè)計語言ALGOL60,發(fā)表了“算法語言ALGOL 60 報告”。1962 年又發(fā)表了“算法語言ALGOL 60的修改報告”。ALGOL60是程序設(shè)計語言發(fā)展史上的一個里程碑,它標(biāo)志著程序設(shè)計語言由一種“技藝”轉(zhuǎn)而成為一門“科學(xué)冶,開拓了程序設(shè)計語言的研究領(lǐng)域,又為后來軟件自動化的工作以及軟件可靠性問題的發(fā)展奠定了基礎(chǔ)。而后像1967年出現(xiàn)的首次引進(jìn)“類型”的概念,把數(shù)據(jù)和被允許施行于這些數(shù)據(jù)之上的運(yùn)算結(jié)合為一個統(tǒng)一體,因而成為現(xiàn)代抽象數(shù)據(jù)類型的開端以及第一個面向?qū)ο蟮恼Z言SIMULA67。1971年出現(xiàn)的著名的PASCAL等語言,也都是在ALGOL 60的基礎(chǔ)上加以擴(kuò)充而形成的。ALGOL60的主要特點(diǎn)有:
1. 局部性。首次引進(jìn)局部性概念,既擴(kuò)充了語言的表達(dá)能力,又可節(jié)省內(nèi)存空間,提高程序的緊湊性。
2. 動態(tài)性。語言含有動態(tài)成分,從而明顯提高了語言的表達(dá)能力(當(dāng)然也相應(yīng)增加了實(shí)現(xiàn)中的開銷)。
3. 遞歸性。遞歸性的引進(jìn)開拓了軟件的研究領(lǐng)域,促進(jìn)了軟件的發(fā)展。
4. 嚴(yán)謹(jǐn)性。它的語法和語義均有嚴(yán)格的描述,特別是語法,采用了著名的巴克斯范式BNF,結(jié)構(gòu)清晰,理論嚴(yán)謹(jǐn)。
在ALGOL 58和ALGOL60的形成和修改過程中,佩利都起了核心和關(guān)鍵的作用。佩利之所以榮獲首屆圖靈獎,主要就是因為他在這方面的重大貢獻(xiàn)。
與此同時,在佩利的積極組織下,卡內(nèi)基理工學(xué)院率先在大學(xué)生中開設(shè)程序設(shè)計課程。在此之前,有關(guān)程序設(shè)計的知識是作為“數(shù)值分析”課程內(nèi)容的一部分予以介紹的。程序設(shè)計課的開設(shè)是計算機(jī)科學(xué)教育的開端。這引起了計算機(jī)的最大用戶———美國國防部的重視,由其下屬的高級研究計劃署(ARPA)出面,資助對計算機(jī)科學(xué)及其教育進(jìn)行立項研究,其結(jié)果是20世紀(jì)60年代中期首先在卡內(nèi)基理工學(xué)院、斯坦福大學(xué)、麻省理工學(xué)院等少數(shù)幾個大學(xué)建立起了計算機(jī)科學(xué)系和計算機(jī)科學(xué)研究生院,使計算機(jī)科學(xué)脫離電氣工程、數(shù)學(xué)等學(xué)科而成為一門獨(dú)立的學(xué)科。鑒于在其中所起的巨大作用,佩利被稱為“使計算機(jī)科學(xué)成為獨(dú)立學(xué)科的奠基人”———Afounding father of computer sci鄄ence as a separatediscipline。而在卡內(nèi)基理工學(xué)院(現(xiàn)卡內(nèi)基-梅隆大學(xué)),佩利和西蒙(H. A. Simon)、紐厄爾(A.Newell)———后二人是1975年的圖靈獎獲得者———被稱為“計算機(jī)系的三駕馬車”。
1971年,佩利離開卡內(nèi)基理工學(xué)院,加盟新成立的耶魯大學(xué)計算機(jī)系,曾數(shù)度出任系主任,為耶魯大學(xué)計算機(jī)系的建設(shè)和發(fā)展作出了重大貢獻(xiàn)。其間,1977—1978年,他曾在加州理工學(xué)院執(zhí)教。因此,佩利可謂“桃李滿天下”,尤其是美國的第一批計算機(jī)科學(xué)博士生,絕大部分都是佩利的弟子。
佩利也是計算機(jī)學(xué)術(shù)組織和學(xué)術(shù)交流活動的積極倡導(dǎo)者和組織者。1962—1964年他出任ACM主席。著名的雜志Communications ofthe ACM也是由他倡議創(chuàng)辦的,并在1958—1962年擔(dān)任第一任主編。
作為知名學(xué)者,他經(jīng)常到世界各國講學(xué)或作報告,足跡遍及蘇聯(lián)、丹麥、意大利、以色列、墨西哥、秘魯、英國、荷蘭、委內(nèi)瑞拉……其中也曾兩次到中國講學(xué)。他也是“乒乓外交”后最早(1972年7月)到中國訪問的美國計算機(jī)科學(xué)家代表團(tuán)的成員之一。
佩利說過這樣一句話:“任何名詞都可以變?yōu)閯釉~”(any noun canbeverbed)。他的意思是說,任何遠(yuǎn)大的理想、志向、抱負(fù)和對新事物的追求,通過努力和不懈的實(shí)踐都是可以實(shí)現(xiàn)的。這是佩利總結(jié)自己的一生所形成的至理名言。
佩利的主要著作有:
《對程序設(shè)計語言的思考》(A View of Programming Languages, Addison-Wesley,1970)
《計算機(jī)科學(xué)導(dǎo)論》(Introduction to Computer Science,Harper&Row,1972,1975)《軟件可重用性》(Software Reusability,ACMPress,1989)
最后這部書分兩卷,第一卷:概念與模型(Concepts and Models),第二卷:應(yīng)用與經(jīng)驗(Applications andExperience),是佩利與比格斯托夫(T. J.Biggerstaff)合編的。這是他生前的最后一部著作,反映了他晚年對軟件工程的關(guān)心和重視。
佩利1973 年當(dāng)選為美國藝術(shù)和科學(xué)院院士,1976年當(dāng)選為美國工程院院士。除了獲得圖靈獎外,他還在1984年獲得AFIPS的教育獎,曾被普渡大學(xué)、滑鐵盧大學(xué)等多所大學(xué)授予名譽(yù)博士學(xué)位。1990年2月7日,佩利因心臟病在康涅狄格州的紐哈芬去世,享年68歲。
佩利是在1966年8月舉行的ACM第21屆全國大會上被授予圖靈獎的。佩利發(fā)表了題為“算法系統(tǒng)的綜合”(The Synthesis ofAlgorithmic Systems)的演說(刊于雜志Journal of theACM,1967年1月,1—9頁,也可見《前20年的ACM 圖靈獎演說集》(ACM Turing AwardLectures———The First 20 Years:1966—1985,ACMPress,5—16頁)。佩利發(fā)表演說的1966年,編程還要通過專門設(shè)計的“編碼紙”(codingsheet)和穿孔卡片進(jìn)行。但佩利的眼光已經(jīng)瞄向未來。他在強(qiáng)調(diào)指出圖靈計算模型的重要意義以后,討論了程序設(shè)計語言和系統(tǒng)下一步應(yīng)朝哪些方向發(fā)展,包括更豐富的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu),以及與之相聯(lián)系的更豐富的操作等。佩利所指出的方向有些已被隨后的研究與開發(fā)所實(shí)現(xiàn),如LISP和Smalltalk 語言,有些則至今仍有待進(jìn)一步的研究。