基本內容
彼得·諾爾(英語:Peter Naur,1928年10月25日-),生于丹麥腓特烈斯貝,計算機科學家。他開發(fā)了BNF范式,改進了編程語言。他也投入了 ALGOL 60的開發(fā)工作。曾任哥根哈根大學教授,為2005年圖靈獎得主,也是目前唯一一位丹麥籍的得主。
從天文學家到計算機科學家
1957年取得天文學博士學位。
他將巴科斯范式導入ALGOL 60中,并進一步發(fā)展它。
諾爾1928年生于丹麥首都哥本哈根近郊的弗雷德里克斯伯格(Frederiksberg),1949年在哥本哈根大學取得天文學碩士學位。1950~1951年,他在英國劍橋大學進修期間,用過由威爾克斯主持研制的世界上第一臺存儲程序式數(shù)字計算機EDSAC,學到了不少有關計算機和在計算機上編程的知識。但他的主要興趣仍在天文學方面。1952—1953年他在芝加哥大學的Yerkes天文臺和McDonald天文臺當助理研究員期間,由于天文學研究中有大量計算,曾到IBM公司的沃森研究中心進修,這使他獲得了更多的計算機知識。1953年回到丹麥以后,他到哥本哈根天文臺工作。由于開展天文研究的需要,他受命設計了丹麥的第一臺計算機DASK,同時也完成了他天文學研究的博士論文,1957年取得哥本哈根大學天文學博士學位。
ALGOL 58報告公布以后,受到廣泛關注,但它的不足和缺點也受到批評。1960年1月11日,在IBM(歐洲)的財政支持下,舉行了一次重要的會議,對ALGOL 58進行修改。諾爾不但參加了這個會議,成為新的ALGOL(即ALGOL 60)文本的執(zhí)筆人,而且對巴克斯提出的描述語言語法的方案進行了仔細審閱和修改,使之完善,從而誕生了BNF。
1961年,諾爾在由他設計的DASK上實現(xiàn)了ALGOL。這是世界上首批ALGOL實現(xiàn)中的一個。
雖然參與了這么多活動,做了這么多工作,也做出了這么大貢獻,但諾爾在這段時間里仍主要關心天文學,計算機只是由于研究天文學的需要而介入的,直到約1964年左右,諾爾對計算與數(shù)據(jù)處理的興趣才超出對天文學的興趣而占了上風。1966年,他發(fā)明了一個新的單詞——datalogy。丹麥的計算機學會的正式名稱就叫Danish Society of Datalogy,他是這個學會的第一任主席。1969年,他說服哥本哈根大學建立起了計算機專業(yè),他又是該校的第一位計算機教授。
鑒于諾爾在數(shù)據(jù)處理技術方面為國家所作出的貢獻,丹麥政府在1963年授予他C.A.Hagemanns金質獎章,1966年又授予他Rosenhjaer獎。IEEE則因他“對計算機語言開發(fā)”(For computer language development)所作出的貢獻授予他計算機先驅獎。
1986年計算機先驅獎獲得者彼得·諾爾(Peter Naur)這個名字對于從事計算機科學技術的人來說是不陌生的,因為大家常用的描寫高級語言語法的元語言BNF的全稱是“巴克斯—諾爾范式”,這個范式是由巴克斯首創(chuàng),但經(jīng)諾爾改進而成的。但大家未見得知道,諾爾原本是天文學家,“陰差陽錯”地走進了計算機領域并成為對計算機技術的發(fā)展起了重大作用的科學家。
傳奇生涯
《紐約時報》報道,2006年3月1日,國際計算機協(xié)會(ACM)宣布彼得.諾爾為2005年A.M.圖靈獎的獲得者。這個獎項是由于諾爾在定義Algol 60這種程序設計語言方面的先驅性工作而頒發(fā)給他的。Algol 60是許多后來的程序設計語言,包括今天那些必不可少的軟件工程工具的原型。圖靈獎,被認為是“計算科學界的諾貝爾獎”,于 1966年首次頒發(fā),是以英國數(shù)學家圖靈(Alan M.Turing)命名的。獎金額度為100,000美元,由英特爾公司提供贊助。
諾爾博士在1960年是具有極高影響的《算法語言Algol 60報告》的主編。這份報告的優(yōu)雅、一致和連貫使他聲名鵲起,并被認為是創(chuàng)造了這種算法語言的強大功能和簡易性的重要貢獻者。這份報告先驅性地使用了BNF范式(Bcakus-Naur-Form)用以定義程序設計語言的語法。BNF現(xiàn)在是定義一種計算機語言的標準方式。諾爾還因為他對于編譯設計的貢獻、以及在計算機程序設計方面的技巧與實踐而受到表彰。
“諾爾博士的Algol 60體現(xiàn)了算法表達中的優(yōu)雅和簡明的概念,”英特爾高級研究員和首席技術主管查斯廷.拉納(Justin Rattner)說,“多年以來,計算機語言已經(jīng)被各種特性和功能所充斥,這使得計算機越來越難學習,效力越來越低。未來的語言設計者正面臨著今天在程序設計方面的最大挑戰(zhàn),如通用目的、多線程計算等。這個獎項應該鼓勵他們達到與Algol 60同樣優(yōu)雅和簡明的水平,而這正是Algol 60的特點!
計算科學誕生的標志
2002年,前圖靈獎得主Edsger Dijbstra把Algol 60的發(fā)展描述為“一個絕對的奇跡”,標志著他所說的“計算科學”的誕生,因為Algol 60首次顯示了自動計算能夠并且應當成為學術關注的主題。 Algol 60的發(fā)展是一群極具天賦的人才的工作成果,其中包括幾位以后的圖靈獎獲得者。
諾爾博士對于Algol 60的貢獻是創(chuàng)新性的。另一位前圖靈獎得主約翰.班卡斯(John Backus)認為諾爾是推動定義Algol 60的“強勁的智力力量”。他評論說,諾爾的Algol 報告編輯工作和他對于正式提出Algol 60的1960年1月的會議的充分準備,“真正使得Algol 60成為現(xiàn)在這種語言。如果他沒有做這些工作,Algol 60就不會產生!
在Algol 60報告出版之前,計算機語言是通過說明性的使用手冊和編譯代碼本身而非正式地定義。這個報告通過使用BNF來定義語法,并用精心選擇的說明文字定義語義,從而簡潔、有力而又清晰。17頁長的Algol 60報告展示了對優(yōu)雅清晰的語言的完美定義,這種語言可用于計算機之間交流,也可用于人類之間交流。這種語言精心地做到不依賴于任何特定的計算機的屬性。這種新的語言對于編譯程序作者是一個很大的挑戰(zhàn)。諾爾博士繼續(xù)和他人合著了《GIER Algol 編譯程序》(丹麥開發(fā)的晶體管電子計算機被稱為GIER),這是第一批能夠完全準確地處理語言的強大過程機理的編譯程序之一。
“諾爾博士的貢獻是計算領域的一個分水嶺,改變了我們定義程序設計語言的方式,”2005年圖靈委員會的主席,微軟研究院的詹姆斯.格瑞(James Gray)說,“許多我們現(xiàn)在認為是理所當然的程序設計是在Algol 報告中提出的,它提出了一種簡明的塊結構語言,改善了我們的算法表達方式!
諾爾博士在將軟件工程建立為一種學科方面起了很大作用。他通過他的主張和結構化編程方面的工作,在編寫準確程序的方法學上作出了先驅性的貢獻,而他的主張使程序員表達他們的假設成為可能。格瑞說:“他的工作,盡管是正式的和精確的,但表現(xiàn)出了非同尋常的對于限制的理解和對形式以及精確度的運用。”通過這些活動以及開設了一門有影響力的計算機科學課程,諾爾博士為構建當今計算知識和技巧的基本構成部分作出了貢獻。
實際運算和應用方面的早期經(jīng)驗
諾爾博士在1949年獲得了哥本哈根大學的magister學位(相當于碩士學位),后來又回校于1957年獲得天文學博士學位。在1950~1951學年,諾爾博士在英國劍橋國王學院學習天文學,然后來到美國進一步開展研究工作。這個工作涉及到使用早期的計算機(以EDSAC開始,這是世界上第一臺實用的存儲程序的電子計算機)用于天文學計算。1953年,他回到丹麥在哥本哈根天文臺做科研助理。
1959年他加入了丹麥的第一家計算機公司Regnecentralen的編譯程序設計小組。在那里他是13人的國際Algol 60小組報告的主編,正是這個報告定義了Algol 60。他在1969年成為了哥本哈根大學計算學院的教授,并于1998年退休。
諾爾博士1963年獲得了丹麥技術大學頒發(fā)的G.A.Hagemann金獎,1966年丹麥電臺的Jens Rosejaer獎,以及1986年的電學和電子工程師學會頒發(fā)的計算機先驅獎。
ACM將于2006年5月20日在加州的舊金山Westin街Francis飯店舉行的每年一度的ACM頒獎宴會上頒發(fā)圖靈獎。
著作
《計算——人類的重要活動》(Computing:a Human Activity,Addi.son·Wesley,1992)
《邏輯和規(guī)則的奧妙》(Knowing and Mystique of Logic and Rules,Kluwer Academic Pr.,1995)