生平
佩利1922年4月1日生於美國賓夕法尼亞州的匹茲堡。在卡內基理工學院(現卡內基—梅隆大學)學的專業是化學,1942年畢業取得學士學位。因當時還處於二次世界大戰期間,而且在珍珠港事件後美國已宣布正式參戰,因此佩利被應徵入伍,在空軍服役。戰後他進入麻省理工學院(MIT)研究生院繼續深造,改學數學,於1949年取得碩士學位,然後又攻讀博士學位,於1950年取得該學位。1951年他在美國陸軍軍械部設在馬里蘭州的阿伯丁試驗基地內的“彈道研究實驗室”(馮·諾伊曼曾在該研究實驗室當顧問)幹了一年,然後回到母校MIT參加“鏇風”(Whirlwind)計算機計畫,為“鏇風”編製程序。為了說明佩利參與的“鏇風”計畫的意義,我們先簡要回顧一下計算機誕生初期的發展歷史。
成就
ENIAC
大家知道,世界上第一台電子計算機叫“ENIAC”(這是Electronic Numerical Integrator and Computer的詞頭縮寫,意為“電子數字積分器和計算機”),是賓夕法尼亞大學莫爾學院(Moore School)根據上述阿伯丁彈道研究實驗室為各種火炮計算彈道、編制射擊表的需要於1943年6月與聯邦政府簽訂10萬美元的契約而研製的。項目由約翰·莫奇利(John William Mauchly,1907—1980)負責邏輯設計,伊克特(John Presper Eckert,Jr,1919—1995)負責電路設計。ENIAC是一台十進制並行計算機,能同時處理10個十進制數,採用電子管電路,時鐘頻率100000 Hz,加法時間0.2 ms,乘法時間2.8 ms,是一個占地1500ft2(約139 m2),重30t,功耗150kw的龐然大物,於1946年2月完成,未能參加第二次世界大戰,但被洛斯阿拉莫斯(Los Alamos)國家實驗室用於計算核子彈爆炸的突變問題,後來又曾用於阿伯丁的空軍試驗場,一直運行到1955年10月才停止工作。世人一直公認莫奇利和伊克特是ENIAC的發明者,但後來在兩家計算機公司的訴訟中,法院判定他們剽竊了約翰·阿塔那索夫(John Vincent Atana-soff,1903—1995)的構思和設計。這個涉及世界上第一台電子計算機的發明權案件曾經轟動美國。但有趣的是,雖然阿塔那索夫確實曾在1941年把自己關於構思計算機的構想告訴過莫奇利,後者也確實因此受到啟發而寫出了有關論證報告並設計出了ENIAC,但社會輿論似乎並不支持法院的判決,現在一提到ENIAC,幾乎眾口一詞地仍然說是莫奇利和伊克特發明的,沒有人說是阿塔那索夫發明的,這對美國法院的判決真是一種諷刺。
EDVAC
ENIAC雖然是世界上第一台電子計算機而被載人史冊,但它不具備存儲程式的能力,程式要通過外接電路板輸入。要改變程式必須改接相應的電路板,對於每種類型的題目,都要設計相應的外接插板。這不是理想的結構,不符合馮·諾伊曼早就提出的存儲程式的構想。那么世界上第一台存儲程式式計算機是哪一台呢?有些資料認為是前面曾經提到過的曼徹斯特大學的MARK I,但現在一般說法是英國劍橋大學威爾克斯(M.V.Wilkes,1967年圖靈獎獲得者)設計和完成於1949年5月的EDSAC。實際上,最早開始設計與實施存儲程式式計算機的還是莫爾學院的EDVAC(Electronic Discrete VariableAutomatic Computer的詞頭縮寫,意為“電子分離變數自動計算機”)。這是1945年3月(當時ENIAC正在安裝調試階段),由馮·諾伊曼本人與莫奇利、伊克特等人經過兩天會談、討論後制定的設計方案,採用電子管和半導體二極體,用水銀延遲線作存儲器,時鐘頻率1MHz,字長32bit。由於ENIAC的原因,EDVAC的研製從1947年才開始,加上莫奇利和伊克特兩人後來因故離開了莫爾學院,使工程遇到困難,1952年(有的資料說1951年)才完成,這才使威爾克斯的ED—SAC“後來居上”(詳見後面關於威爾克斯的介紹)。
“鏇風”計算機
但不管EDSAC也好,EDVAC也好,都是串列計算機(serial com—Duter),即數據的傳送和運算是按位逐一進行的,這樣的計算機運算部件少,運算也簡單,但速度慢,不能滿足某些套用的需要。那么世界上第一台存儲程式式的並行計算機是哪一台呢?這就是前述“鏇風”計算機。“鏇風”的主要設計者和研製者是MIT的弗里斯特(JayWright Forrest)。弗里斯特也是受軍方委託,用風洞來研究飛機穩定性時根據數據處理的需要而設計“鏇風”的。“鏇風”受EDSAC的影響採用存儲程式方式,但鑒於處理飛機穩定性需要2000條以上指令,必須改串列為並行,但又要照顧機器體積不宜過大,因此設計成16位字長的並行計算機。“鏇風”的另一項創新是採用英國曼徹斯特大學威廉斯(FrederiC calland Williams,1911—1977)發明不久的陰極射線管作記憶體儲器。“鏇風”的研製工作從1946年開始,1950年試運行成功。20世紀50年代冷戰加劇的形勢下,美國軍方對“鏇風”寄予極大希望,空軍每年投資100萬美元(試比較一下,ENIAC的總經費才10萬美元),MIT也專門成立了著名的“林肯實驗室”,以弗里斯特原先的實驗室為核心,研究“鏇風”的軍事套用。1951年,“鏇風”與當時著名的SAGE(Semi-Automatic Ground Environment,即半自動地面防空系統,包括全美17個防區)首次實現連線,把位於卡德角的防空警戒雷達所截獲的信息送到MIT,由“鏇風”計算機進行處理、分析和存儲。這是歷史上計算機與通信相結合的先驅。弗里斯特還在20世紀40年代末和美籍華人科學家兼企業家王安(Wang An,1920—1990)幾乎同時分別獨立地發明了磁心存儲器,並把它用在“鏇風”中以代替陰極射線管存儲器,從而進一步大大提高了“鏇風”的性能。
Algol 58
佩利在“鏇風”上工作到1952年9月。之後他來到普渡大學,在那裡他創建了全美大學中的第一個計算中心,開創了在大學中建立計算中心的先河。他出任普渡大學計算中心的第一任主任。在他的努力下,計算中心先安裝了一台IBM的CPC計算機(Card ProgrammedCalculator),以後更新為Datatron 205。佩利為之設計了稱為IT(Inter-hal Translator)的語言,並開發了IT的編譯器。1956年佩利轉到卡內基理工學院,“故伎重演”,又推動該校成立了計算中心並出任主任,配置了IBM 650計算機。佩利把他在普渡大學開發的IT及其編譯器移植到IBM 650上,曾經在美國許多大學的IBM 650上被廣泛採用;在IT的基礎上,佩利和史密斯(J.Smith)、佐輪(H.Zoren)、伊萬斯(A.Evans)等人一起為IBM 650設計與開發了新的代數語言和彙編語言。這些工作奠定了佩利作為電腦程式設計語言的先行者的地位。因此,當ACM於1957年成立程式設計語言委員會以便與歐洲的同行合作,設計通用的代數語言的時候,佩利被理所當然地看作是最佳人選而被任命為這個委員會的主席。1958年,在蘇黎世舉行的ACM小組和以當時聯邦德國的套用數學和力學協會GAMM為主的歐洲小組的聯合會議上,兩個小組把他們關於算法表示法的建議綜合為一,形成了Algol 58(開始時的名稱叫做“國際代數語言”,即International Algebraic Language,簡稱IAL。後來改叫Algol 58)。在Algol 58的基礎上,1960年1月在巴黎舉行的有全世界一流軟體專家參加的討論會上,確定了程式設計語言Algol 60,發表了“算法語言Algol 60報告”。1962年又發表了“算法語言Algol 60的修改報告”。Algol 60是程式設計語言發展史上的一個里程碑,它標誌著程式設計語言由一種“技藝”轉而成為一門“科學”,開拓了程式設計語言的研究領域,又為後來軟體自動化的工作以及軟體可靠性問題的發展奠定了基礎。而後像1967年出現的首次引進“類型”的概念,把數據和被允許施行於這些數據之上的運算結合為一個統一體,因而成為現代抽象數據類型的開端以及第一個面向對象的語言SIMULA67,1971年出現的著名的PASCAL等語言,也都是在Algol 60的基礎上加以擴充而形成的。Algol60的主要特點有:
1.局部性首次引進局部性概念,既擴充了語言的表達能力,又可節省記憶體空間,提高程式的緊湊性。
2.動態性語言含有動態成分,從而明顯提高了語言的表達能力(當然也相應增加了實現中的開銷)。
3.遞歸性遞歸性的引進開拓了軟體的研究領域,促進了軟體的發展。
4.嚴謹性它的語法和語義均有嚴格的描述,特別是語法,採用了著名的巴克斯範式BNF,結構清晰,理論嚴謹。
在Algol 58和Algol 60的形成和修改過程中,佩利都起了核心和關鍵的作用。佩利之所以榮獲首屆圖靈獎,主要就是因為他在這方面的重大貢獻。
與此同時,在佩利的積極組織下,卡內基理工學院率先在大學生中開設程式設計課程。在此之前,有關程式設計的知識是作為“數值分析”課程內容的一部分予以介紹的。程式設計課的開設是計算機科學教育的開端。這引起了計算機的最大用戶——美國國防部的重視,由它的高級研究計畫署ARPA出面,出資資助對計算機科學及其教育立項研究,其結果是20世紀60年代中期首先在卡內基理工學院、史丹福大學、MIT等少數幾個大學建立起了計算機科學系和計算機科學研究生院,使計算機科學脫離電氣工程、數學等學科而成為一門獨立的學科。鑒於佩利在其中所起的巨大作用,佩利被稱為“使計算機科學成為獨立學科的奠基人”——A founding father of Computer Science as a separate discipline。而在卡內基理工學院(現卡內基—梅隆大學),佩利和西蒙(H.A.Simon)、紐厄爾(A.Newell),後二人是1975年圖靈獎獲得者,三人被稱為“計算機系的三駕馬車”。
其他
1971年,佩利離開卡內基—梅隆大學,加盟新成立的耶魯大學計算機系,曾數度出任系主任,為耶魯大學計算機系的建設和發展作出了重大貢獻。其間,1977—1978年,他曾在加州理工學院執教。因此,佩利可謂“桃李滿天下”,尤其是美國的第一批計算機科學博士生,絕大部分都是佩利的弟子。
佩利也是計算機學術組織和學術交流活動的積極倡導者和組織者。1962—1964年他出任ACM主席。著名的雜誌Communications of ACM也是由他倡議創辦的,並在1958—1962年擔任第一任主編。作為知名學者,他經常到世界各國講學或作報告,足跡遍及前蘇聯、丹麥、義大利、以色列、墨西哥、秘魯、英國、荷蘭、委內瑞拉……其中也曾兩次到中國講學。他也是“桌球外交”後,最早(1972年7月)到中國訪問的美國計算機科學家代表團的成員之一。
佩利說過這樣一句話:“任何名詞都可以變為動詞”(any noun canbe verbed)。他的意思是說,任何遠大的理想、志向、抱負和對新事物的追求,通過努力和不懈的實踐,都是可以實現的。這是佩利總結自己的一生所形成的至理名言。
1990年2月7日,佩利因心臟病在康乃狄克州的紐哈芬去世,享年68歲。
主要著作
《對程式設計語言的思考》(A View of Programming LanguagesAd-dison-Wesley,1970)
《計算機科學導論》(Introduction to Computer Science,Harper&Row,1972,1975)
《軟體可重用性》(Software Reusability,ACM pr,1989)
最後這部書分兩卷,第一卷:概念與模型(Concepts and Models),第二卷:套用與經驗(Applications and Experience),是佩利與比格斯托夫(T.J.Biggerstaff)合編的。這是他生前的最後一部著作,反映了他晚年對軟體工程的關心和重視。
佩利是在1966年8月舉行的ACM第21屆全國大會上被授予圖靈獎的。佩利發表了題為“算法系統的綜合”(The Synthesis of Algorithmic Systems)的演說(刊於雜誌Journal of ACM,1967年1月,1~9頁,也可見《前20年的圖靈獎演說集》(ACM Turing Award Lectures----The First 20 Years:1966—1985,ACM pr,5~16頁)。佩利發表演說的1966年,編程還要通過專門設計的“編碼紙”(coding sheet)和穿孔卡片進行。但佩利的眼光已經描向未來。他在強調指出圖靈計算模型的重要意義以後,討論了程式設計語言和系統下一步應朝哪些方向發展,包括更豐富的數據類型和數據結構,以及與之相聯繫更豐富的操作等。佩利所指出的方向有些已被隨後的研究與開發所實現,如LISP,Smalltalk,有些則至今有待進一步的研究。
榮譽
佩利1973年當選為美國藝術和科學院院士,1976年當選為美國工程院院士。除了獲得圖靈獎外,他還在1984年獲得AFIPS的教育獎,曾被普渡大學、滑鐵盧大學等多所大學授予名譽博士學位。
1966年成為首屆圖靈獎的獲得者。