彼得·諾爾 - 簡介
彼得·諾爾Peter Naur,出生于1928年10月25日于丹麥。Naur于1949年從Copenhagen Unviersity(哥本哈根大學(xué))獲得其天文學(xué)方面的Magister of Science學(xué)位(類似于碩士學(xué)位),1957年完成了其天文學(xué)的博士學(xué)位。在1950年和1951年其間,Naur在英國劍橋大學(xué)研讀天文學(xué)。其間,Naur的工作用到了計算機(EDSAC,世界上第一臺使用存儲裝置的電子計算機)。1959年,Naur加盟丹麥第一個計算機公司--Regnecentralen。并且領(lǐng)導(dǎo)了Algol 60語言的定義。1969年,Naur成為哥本哈根大學(xué)的教授,直到1998年退休。
Naur也是著名的編程語言歸約BNF范式中的N.B是John W. Backus。 Backus是第一個高級編程語言Fortan的發(fā)明者。除了早期有關(guān)ALGOL和DASK的一些文章和專著外,諾爾近期還出版了以下兩部重要著作:《計算——人類的重要活動》(Computing:a Human Activity,Addi.son·Wesley,1992)。《邏輯和規(guī)則的奧妙》(Knowing and Mystique of Logic and Rules,Kluwer Academic Pr.,1995)
彼得·諾爾 - 人物歷程
從天文學(xué)家到計算機科學(xué)家
1986年計算機先驅(qū)獎獲得者彼得·諾爾(Peter Naur)這個名字對于從事計算機科學(xué)技術(shù)的人來說是不陌生的,因為大家常用的描寫高級語言語法的元語言BNF的全稱是“巴克斯—諾爾范式”,這個范式是由巴克斯首創(chuàng),但經(jīng)諾爾改進(jìn)而成的。但大家未見得知道,諾爾原本是天文學(xué)家,“陰差陽錯”地走進(jìn)了計算機領(lǐng)域并成為對計算機技術(shù)的發(fā)展起了重大作用的科學(xué)家。
諾爾1928年9月生于丹麥?zhǔn)锥几绫竟嫉母ダ椎吕锟怂共?Frederiksberg),1949年在哥本哈根大學(xué)取得天文學(xué)碩士學(xué)位。 1950~1951年,他在英國劍橋大學(xué)進(jìn)修期間,用過由威爾克斯主持研制的世界上第一臺存儲程序式數(shù)字計算機EDSAC,學(xué)到了不少有關(guān)計算機和在計算機上編程的知識。但他的主要興趣仍在天文學(xué)方面。1952—1953年他在芝加哥大學(xué)的Yerkes天文臺和McDonald天文臺當(dāng)助理研究員期間,由于天文學(xué)研究中有大量計算,曾到IBM公司的沃森研究中心進(jìn)修,這使他獲得了更多的計算機知識。1953年回到丹麥以后,他到哥本哈根天文臺工作。由于開展天文研究的需要,他受命設(shè)計了丹麥的第一臺計算機DASK,同時也完成了他天文學(xué)研究的博士論文,1957年取得哥本哈根大學(xué)天文學(xué)博士學(xué)位。
ALGOL 58報告公布以后,受到廣泛關(guān)注,但它的不足和缺點也受到批評。1960年1月11日,在IBM(歐洲)的財政支持下,舉行了一次重要的會議,對 ALGOL 58進(jìn)行修改。諾爾不但參加了這個會議,成為新的ALGOL(即ALGOL 60)文本的執(zhí)筆人,而且對巴克斯提出的描述語言語法的方案進(jìn)行了仔細(xì)審閱和修改,使之完善,從而誕生了BNF。
1961年,諾爾在由他設(shè)計的DASK上實現(xiàn)了ALGOL。這是世界上首批ALGOL實現(xiàn)中的一個。
雖然參與了這么多活動,做了這么多工作,也做出了這么大貢獻(xiàn),但諾爾在這段時間里仍主要關(guān)心天文學(xué),計算機只是由于研究天文學(xué)的需要而介入的,直到約1964年左右,諾爾對計算與數(shù)據(jù)處理的興趣才超出對天文學(xué)的興趣而占了上風(fēng)。1966年,他發(fā)明了一個新的單詞——datalogy。丹麥的計算機學(xué)會的正式名稱就叫Danish Society of Datalogy,他是這個學(xué)會的第一任主席。1969年,他說服哥本哈根大學(xué)建立起了計算機專業(yè),他又是該校的第一位計算機教授。
鑒于諾爾在數(shù)據(jù)處理技術(shù)方面為國家所作出的貢獻(xiàn),丹麥政府在1963年授予他C.A.Hagemanns金質(zhì)獎?wù)拢?966年又授予他Rosenhjaer獎。 IEEE則因他“對計算機語言開發(fā)”(For computer language development)所作出的貢獻(xiàn)授予他計算機先驅(qū)獎。
除了早期有關(guān)ALGOL和DASK的一些文章和專著外,諾爾近期還出版了以下兩部重要著作:
《計算——人類的重要活動》(Computing:a Human Activity,Addi.son·Wesley,1992)
《邏輯和規(guī)則的奧妙》(Knowing and Mystique of Logic and Rules,Kluwer Academic Pr.,1995)
Peter Naur —— Algol 60引發(fā)語言設(shè)計革命編輯本段回目錄
《紐約時報》報道,2006年3月1日,國際計算機協(xié)會(ACM)宣布彼得.諾爾為2005年A.M.圖靈獎的獲得者。這個獎項是由于諾爾在定義Algol 60這種程序設(shè)計語言方面的先驅(qū)性工作而頒發(fā)給他的。Algol 60是許多后來的程序設(shè)計語言,包括今天那些必不可少的軟件工程工具的原型。圖靈獎,被認(rèn)為是“計算科學(xué)界的諾貝爾獎”,于 1966年首次頒發(fā),是以英國數(shù)學(xué)家圖靈(Alan M.Turing)命名的。獎金額度為100,000美元,由英特爾公司提供贊助。
諾爾博士在1960年是具有極高影響的《算法語言Algol 60報告》的主編。這份報告的優(yōu)雅、一致和連貫使他聲名鵲起,并被認(rèn)為是創(chuàng)造了這種算法語言的強大功能和簡易性的重要貢獻(xiàn)者。這份報告先驅(qū)性地使用了 BNF范式(Bcakus-Naur-Form)用以定義程序設(shè)計語言的語法。BNF現(xiàn)在是定義一種計算機語言的標(biāo)準(zhǔn)方式。諾爾還因為他對于編譯設(shè)計的貢獻(xiàn)、以及在計算機程序設(shè)計方面的技巧與實踐而受到表彰。
“諾爾博士的Algol 60體現(xiàn)了算法表達(dá)中的優(yōu)雅和簡明的概念,”英特爾高級研究員和首席技術(shù)主管查斯廷.拉納(Justin Rattner)說,“多年以來,計算機語言已經(jīng)被各種特性和功能所充斥,這使得計算機越來越難學(xué)習(xí),效力越來越低。未來的語言設(shè)計者正面臨著今天在程序設(shè)計方面的最大挑戰(zhàn),如通用目的、多線程計算等。這個獎項應(yīng)該鼓勵他們達(dá)到與Algol 60同樣優(yōu)雅和簡明的水平,而這正是Algol 60的特點!
計算科學(xué)誕生的標(biāo)志
2002年,前圖靈獎得主Edsger Dijbstra把Algol 60的發(fā)展描述為“一個絕對的奇跡”,標(biāo)志著他所說的“計算科學(xué)”的誕生,因為Algol 60首次顯示了自動計算能夠并且應(yīng)當(dāng)成為學(xué)術(shù)關(guān)注的主題。 Algol 60的發(fā)展是一群極具天賦的人才的工作成果,其中包括幾位以后的圖靈獎獲得者。
諾爾博士對于Algol 60的貢獻(xiàn)是創(chuàng)新性的。另一位前圖靈獎得主約翰.班卡斯(John Backus)認(rèn)為諾爾是推動定義Algol 60的“強勁的智力力量”。他評論說,諾爾的Algol 報告編輯工作和他對于正式提出Algol 60的1960年1月的會議的充分準(zhǔn)備,“真正使得Algol 60成為現(xiàn)在這種語言。如果他沒有做這些工作,Algol 60就不會產(chǎn)生!
在Algol 60報告出版之前,計算機語言是通過說明性的使用手冊和編譯代碼本身而非正式地定義。這個報告通過使用BNF來定義語法,并用精心選擇的說明文字定義語義,從而簡潔、有力而又清晰。17頁長的Algol 60報告展示了對優(yōu)雅清晰的語言的完美定義,這種語言可用于計算機之間交流,也可用于人類之間交流。這種語言精心地做到不依賴于任何特定的計算機的屬性。這種新的語言對于編譯程序作者是一個很大的挑戰(zhàn)。諾爾博士繼續(xù)和他人合著了《GIER Algol 編譯程序》(丹麥開發(fā)的晶體管電子計算機被稱為GIER),這是第一批能夠完全準(zhǔn)確地處理語言的強大過程機理的編譯程序之一。
“諾爾博士的貢獻(xiàn)是計算領(lǐng)域的一個分水嶺,改變了我們定義程序設(shè)計語言的方式,”2005年圖靈委員會的主席,微軟研究院的詹姆斯.格瑞(James Gray)說,“許多我們現(xiàn)在認(rèn)為是理所當(dāng)然的程序設(shè)計是在Algol 報告中提出的,它提出了一種簡明的塊結(jié)構(gòu)語言,改善了我們的算法表達(dá)方式!
諾爾博士在將軟件工程建立為一種學(xué)科方面起了很大作用。他通過他的主張和結(jié)構(gòu)化編程方面的工作,在編寫準(zhǔn)確程序的方法學(xué)上作出了先驅(qū)性的貢獻(xiàn),而他的主張使程序員表達(dá)他們的假設(shè)成為可能。格瑞說:“他的工作,盡管是正式的和精確的,但表現(xiàn)出了非同尋常的對于限制的理解和對形式以及精確度的運用!蓖ㄟ^這些活動以及開設(shè)了一門有影響力的計算機科學(xué)課程,諾爾博士為構(gòu)建當(dāng)今計算知識和技巧的基本構(gòu)成部分作出了貢獻(xiàn)。
實際運算和應(yīng)用方面的早期經(jīng)驗
諾爾博士在1949年獲得了哥本哈根大學(xué)的magister學(xué)位(相當(dāng)于碩士學(xué)位),后來又回校于1957年獲得天文學(xué)博士學(xué)位。在1950~1951學(xué)年,諾爾博士在英國劍橋國王學(xué)院學(xué)習(xí)天文學(xué),然后來到美國進(jìn)一步開展研究工作。這個工作涉及到使用早期的計算機(以EDSAC開始,這是世界上第一臺實用的存儲程序的電子計算機)用于天文學(xué)計算。1953年,他回到丹麥在哥本哈根天文臺做科研助理。
1959年他加入了丹麥的第一家計算機公司 Regnecentralen的編譯程序設(shè)計小組。在那里他是13人的國際Algol 60小組報告的主編,正是這個報告定義了Algol 60。他在1969年成為了哥本哈根大學(xué)計算學(xué)院的教授,并于1998年退休。
諾爾博士1963年獲得了丹麥技術(shù)大學(xué)頒發(fā)的 G.A.Hagemann金獎,1966年丹麥電臺的Jens Rosejaer獎,以及1986年的電學(xué)和電子工程師學(xué)會頒發(fā)的計算機先驅(qū)獎。
ACM將于2006年5月20日在加州的舊金山Westin街Francis飯店舉行的每年一度的ACM頒獎宴會上頒發(fā)圖靈獎。
彼得·諾爾 - 計算思維觀點
顯然,并不是所有的計算機科學(xué)工作者都認(rèn)同對計算思維的這種看法。以研發(fā)Algol 60而著名,2005年圖靈獎的獲得者Peter Naur教授為代表的歐洲學(xué)派的觀點尤其值得我們重視。雖然Naur得的是圖靈獎,但他半個世紀(jì)有關(guān)人的相對于計算機的思維研究使他堅信人之思維的神經(jīng)系統(tǒng)與計算機的根本沒有相同之處(“no similarity whatever”)。因此,他幾乎完全拒絕圖靈關(guān)于智能的想法,特別是Turing Test所隱含的思想,認(rèn)為圖靈的整個論證都是站不住腳的,原因是他關(guān)于思維的想法是建立在錯誤的概念之上的,與心理學(xué)家William James所闡述的第一心理學(xué)事實,即“思維是一種延續(xù)的東西(thinking is something that goes on)”相悖。為此,Naur還建立了自己的神經(jīng)系統(tǒng)的神經(jīng)生理學(xué)描述(a neurophysiological description of the nervous system),稱之為“The Synapse-State Theory of Mental Life”。但Naur的觀點和成果有時被視為“離經(jīng)叛道”,其有關(guān)文章也曾數(shù)次被主流雜志(包括CACM)退稿。
與本文直接相關(guān)的是Naur的一個“大膽”且關(guān)鍵性的結(jié)論:他認(rèn)為,就科學(xué)和學(xué)術(shù)活動而言,計算只是作為一種描述形式才有意義,而有關(guān)邏輯和方法的話題是不相關(guān)的(“as far as the activity of science and scholarship is concerned, computing makes sense as a form of description, while issues of logic or method are irrelevant”)。Naur進(jìn)一步推斷:盡管計算機這種形式能夠描述世上非常多種類的現(xiàn)象,但人的思維不在其中(“This form is very useful for describing a great variety of phenomena of this world, but human thinking is not one of them”)。原因?人的思維基本上是神經(jīng)系統(tǒng)中元素的可塑性之事,然而計算機—圖靈機器并無塑性元素(“human thinking basically is a matter of the plasticity of the elements of the nervous systems, while computers – Turing machines – have no plastic elements. ”)。那如何才能描述人的思維?Naur并沒有真正地回答,只是說:為了描述人的思維,我們需要一種非常不同的、非數(shù)字的形式, 如他的Synapse-State Theory所顯示的(“For describing human thinking one needs a very different, non-digital form, as demonstrated by the Synapse-State Theory”)[5]。更具有殺傷力的是Naur聲稱這一切都已經(jīng)由有關(guān)編程活動中應(yīng)用形式描述的經(jīng)驗性研究所確認(rèn),畢竟他是這方面世界上最有權(quán)威的專家之一,也是最有資格發(fā)言的人之一。
表面上,Naur的觀點與Wing在“計算思維”中闡述的思想直接沖突。特別是Naur的文章在 Wing一文發(fā)表后不久就在計算機科學(xué)界同一重要雜志上登出,自然容易引起人們的遐想。其實不然,Wing在文中特別強調(diào):“人的,不是計算機的思維(A way that humans, not computers, think) ”。Wing進(jìn)一步指出:“計算思維是人類求解問題的一條途徑,但決非試圖使人類像計算機那樣的思考!倍,“計算機枯燥且沉悶;人類聰穎且富有想象力。我們?nèi)祟愘x予計算機以激情。配置了計算設(shè)備,我們就能用自己的智慧去解決那些計算時代之前不敢嘗試的問題,就能建造那些其功能僅僅受制于我們想象力的系統(tǒng)!
關(guān)于這兩篇文章的思想和觀點在深層次上的異同,無法在此詳細(xì)展開,但有兩點,應(yīng)當(dāng)說明。其一就是Naur對他的計算思維觀點之界定,即:是“就科學(xué)和學(xué)術(shù)活動而言”的;其二就是Wing對她的計算思維目標(biāo)之定位,即:使其與“3R(讀寫算)”同等重要和普及。顯然,“讀寫算”遠(yuǎn)遠(yuǎn)超出了“科學(xué)和學(xué)術(shù)活動”的范圍,是對今日之現(xiàn)代人最基本的素質(zhì)要求,已屬基礎(chǔ)文化技能的范疇。清楚地認(rèn)識這兩點,明確“科學(xué)和學(xué)術(shù)活動”與“文化和素質(zhì)培養(yǎng)”的不同和關(guān)聯(lián),是正確地解讀這兩篇文章之間關(guān)系的關(guān)鍵。
不過,我對Naur的斷言有所保留,因為人類的工具使用對人類的思維發(fā)展之影響,是人類自己難以預(yù)知的。前面已提過計算大師Dijkstra“工具影響思維”之?dāng)嘌,更有說服力的是達(dá)爾文的進(jìn)化論和馬克思關(guān)于勞動工具在從猿到人的過程中起關(guān)鍵作用的論斷。機器最終能否描述人的思維,似乎不是今日人類可以知道甚至理解的。就像不論是遠(yuǎn)古還是今天的猿猴都根本無法明白當(dāng)年的木棍石器怎么能把它們的猴腦猴思維變成現(xiàn)代的人腦人思維一樣,今日之人及其子孫可能也無法明白眼前的計算機因特網(wǎng)會把他們的人腦人思維再演化成何腦何思維。如果將來我們的后代能弄明白,那是萬幸,說明進(jìn)化論沒有把未來的人類演變成今日之猿猴(相對而言,但也十分可怕)。如果一定要在今天弄個明白,那只好再用 Dijkstra的話來回答:“機器能否思維的問題 …… 這個問題差不多與潛艇能否游泳的問題一樣相關(guān)(The question of whether Machines Can Think ... is about as relevant as the question of whether Submarines Can Swim。)”我自己更贊同Wing的想法:“當(dāng)計算思維真正融入人類活動的整體以致不再是一種顯式之哲學(xué)的時候,它就將成為現(xiàn)實。”而且,屆時計算思維也就必然是計算文化了。
彼得·諾爾 - 出版書目
1. Minor planet 51 Nemausa and the fundamental system of declinations, PhD thesis, 1957
2. (editor) "Report on the algorithmic language ALGOL 60", 1960, published in several journals, including Communication of the ACM 3, 5 (May 1960), pp. 299–314
3.(editor) "Revised report on the algorithmic language ALGOL 60", Communications of the ACM 6, 1 (Jan. 1963), pp. 1–17
4. "Go to statements and good Algol style", BIT 3 (1963), pp. 204–205
5. (editor with B. Randell and J. N. Buxton) Software Engineering, 231 p., 1969, republished 1976
6 (with C. Gram, J. Hald, H. B. Hansen and A. Wessel) Datamatik, Studentlitteratur, 1969
7. (with B. Pedersen) Matematik 4 kursusbog, 2 volumes, Copenhagen University, 1971, 2nd ed. 1972
8. Concise Survey of Computer Methods, 397 p., Studentlitteratur, 1974
9. Datalogi 2 1975/76, 102 p., Copenhagen University, 1975, new edition 1976
1.. Computing: A Human Activity, 656 p., ACM Press/Addison-Wesley, 1992
11. Knowing and the Mystique of Logic and Rules, 365 p., Kluwer Academic Publishers, 1995
12. Antifilosofisk leksikon: T?nkning - sproglighed - videnskabelighed, 111 p., 1999, ISBN 87-987
13. English translation 2001, ISBN 87-987221-1-5
14. Psykologi i videnskabelig rekonstruktion, 113 p., 2002, ISBN 87-987221-2-3
Naur, P. 2007. Computing versus human thinking. Commun. ACM 50, 1 (Jan. 2007), 85–94. DOI= http://doi.acm.org/10.1145/1188913.1188922