彼得·诺尔 - 简介
彼得·诺尔Peter Naur,出生于1928年10月25日于丹麦。Naur于1949年从Copenhagen Unviersity(哥本哈根大学)获得其天文学方面的Magister of Science学位(类似于硕士学位),1957年完成了其天文学的博士学位。在1950年和1951年其间,Naur在英国剑桥大学研读天文学。其间,Naur的工作用到了计算机(EDSAC,世界上第一台使用存储装置的电子计算机)。1959年,Naur加盟丹麦第一个计算机公司--Regnecentralen。并且领导了Algol 60语言的定义。1969年,Naur成为哥本哈根大学的教授,直到1998年退休。
Naur也是著名的编程语言归约BNF范式中的N.B是John W. Backus。 Backus是第一个高级编程语言Fortan的发明者。除了早期有关ALGOL和DASK的一些文章和专著外,诺尔近期还出版了以下两部重要著作:《计算——人类的重要活动》(Computing:a Human Activity,Addi.son·Wesley,1992)。《逻辑和规则的奥妙》(Knowing and Mystique of Logic and Rules,Kluwer Academic Pr.,1995)
彼得·诺尔 - 人物历程
从天文学家到计算机科学家
1986年计算机先驱奖获得者彼得·诺尔(Peter Naur)这个名字对于从事计算机科学技术的人来说是不陌生的,因为大家常用的描写高级语言语法的元语言BNF的全称是“巴克斯—诺尔范式”,这个范式是由巴克斯首创,但经诺尔改进而成的。但大家未见得知道,诺尔原本是天文学家,“阴差阳错”地走进了计算机领域并成为对计算机技术的发展起了重大作用的科学家。
诺尔1928年9月生于丹麦首都哥本哈根近郊的弗雷德里克斯伯格(Frederiksberg),1949年在哥本哈根大学取得天文学硕士学位。 1950~1951年,他在英国剑桥大学进修期间,用过由威尔克斯主持研制的世界上第一台存储程序式数字计算机EDSAC,学到了不少有关计算机和在计算机上编程的知识。但他的主要兴趣仍在天文学方面。1952—1953年他在芝加哥大学的Yerkes天文台和McDonald天文台当助理研究员期间,由于天文学研究中有大量计算,曾到IBM公司的沃森研究中心进修,这使他获得了更多的计算机知识。1953年回到丹麦以后,他到哥本哈根天文台工作。由于开展天文研究的需要,他受命设计了丹麦的第一台计算机DASK,同时也完成了他天文学研究的博士论文,1957年取得哥本哈根大学天文学博士学位。
ALGOL 58报告公布以后,受到广泛关注,但它的不足和缺点也受到批评。1960年1月11日,在IBM(欧洲)的财政支持下,举行了一次重要的会议,对 ALGOL 58进行修改。诺尔不但参加了这个会议,成为新的ALGOL(即ALGOL 60)文本的执笔人,而且对巴克斯提出的描述语言语法的方案进行了仔细审阅和修改,使之完善,从而诞生了BNF。
1961年,诺尔在由他设计的DASK上实现了ALGOL。这是世界上首批ALGOL实现中的一个。
虽然参与了这么多活动,做了这么多工作,也做出了这么大贡献,但诺尔在这段时间里仍主要关心天文学,计算机只是由于研究天文学的需要而介入的,直到约1964年左右,诺尔对计算与数据处理的兴趣才超出对天文学的兴趣而占了上风。1966年,他发明了一个新的单词——datalogy。丹麦的计算机学会的正式名称就叫Danish Society of Datalogy,他是这个学会的第一任主席。1969年,他说服哥本哈根大学建立起了计算机专业,他又是该校的第一位计算机教授。
鉴于诺尔在数据处理技术方面为国家所作出的贡献,丹麦政府在1963年授予他C.A.Hagemanns金质奖章,1966年又授予他Rosenhjaer奖。 IEEE则因他“对计算机语言开发”(For computer language development)所作出的贡献授予他计算机先驱奖。
除了早期有关ALGOL和DASK的一些文章和专著外,诺尔近期还出版了以下两部重要著作:
《计算——人类的重要活动》(Computing:a Human Activity,Addi.son·Wesley,1992)
《逻辑和规则的奥妙》(Knowing and Mystique of Logic and Rules,Kluwer Academic Pr.,1995)
Peter Naur —— Algol 60引发语言设计革命编辑本段回目录
《纽约时报》报道,2006年3月1日,国际计算机协会(ACM)宣布彼得.诺尔为2005年A.M.图灵奖的获得者。这个奖项是由于诺尔在定义Algol 60这种程序设计语言方面的先驱而颁发给他的。Algol 60是许多后来的程序设计语言,包括今天那些必不可少的软件工程工具的原型。图灵奖,被认为是“计算科学界的诺贝尔奖”,于 1966年首次颁发,是以英国数学家图灵(Alan M.Turing)命名的。奖金额度为100,000美元,由英特尔公司提供赞助。
诺尔博士在1960年是具有极高影响的《算法语言Algol 60报告》的主编。这份报告的优雅、一致和连贯使他声名鹊起,并被认为是创造了这种算法语言的强大功能和简易性的重要贡献者。这份报告先驱性地使用了 BNF范式(Bcakus-Naur-Form)用以定义程序设计语言的语法。BNF现在是定义一种计算机语言的标准方式。诺尔还因为他对于编译设计的贡献、以及在计算机程序设计方面的技巧与实践而受到表彰。
“诺尔博士的Algol 60体现了算法表达中的优雅和简明的概念,”英特尔高级研究员和首席技术主管查斯廷.拉纳(Justin Rattner)说,“多年以来,计算机语言已经被各种特性和功能所充斥,这使得计算机越来越难学习,效力越来越低。未来的语言设计者正面临着今天在程序设计方面的最大挑战,如通用目的、多线程计算等。这个奖项应该鼓励他们达到与Algol 60同样优雅和简明的水平,而这正是Algol 60的特点。”
计算科学诞生的标志
2002年,前图灵奖得主Edsger Dijbstra把Algol 60的发展描述为“一个绝对的奇迹”,标志着他所说的“计算科学”的诞生,因为Algol 60首次显示了自动计算能够并且应当成为学术关注的主题。 Algol 60的发展是一群极具天赋的人才的工作成果,其中包括几位以后的图灵奖获得者。
诺尔博士对于Algol 60的贡献是创新性的。另一位前图灵奖得主约翰.班卡斯(John Backus)认为诺尔是推动定义Algol 60的“强劲的智力力量”。他评论说,诺尔的Algol 报告编辑工作和他对于正式提出Algol 60的1960年1月的会议的充分准备,“真正使得Algol 60成为现在这种语言。如果他没有做这些工作,Algol 60就不会产生。”
在Algol 60报告出版之前,计算机语言是通过说明性的使用手册和编译代码本身而非正式地定义。这个报告通过使用BNF来定义语法,并用精心选择的说明文字定义语义,从而简洁、有力而又清晰。17页长的Algol 60报告展示了对优雅清晰的语言的完美定义,这种语言可用于计算机之间交流,也可用于人类之间交流。这种语言精心地做到不依赖于任何特定的计算机的属性。这种新的语言对于编译程序作者是一个很大的挑战。诺尔博士继续和他人合著了《GIER Algol 编译程序》(丹麦开发的晶体管电子计算机被称为GIER),这是第一批能够完全准确地处理语言的强大过程机理的编译程序之一。
“诺尔博士的贡献是计算领域的一个分水岭,改变了我们定义程序设计语言的方式,”2005年图灵委员会的主席,微软研究院的詹姆斯.格瑞(James Gray)说,“许多我们现在认为是理所当然的程序设计是在Algol 报告中提出的,它提出了一种简明的块结构语言,改善了我们的算法表达方式。”
诺尔博士在将软件工程建立为一种学科方面起了很大作用。他通过他的主张和结构化编程方面的工作,在编写准确程序的方法学上作出了先驱性的贡献,而他的主张使程序员表达他们的假设成为可能。格瑞说:“他的工作,尽管是正式的和精确的,但表现出了非同寻常的对于限制的理解和对形式以及精确度的运用。”通过这些活动以及开设了一门有影响力的计算机科学课程,诺尔博士为构建当今计算知识和技巧的基本构成部分作出了贡献。
实际运算和应用方面的早期经验
诺尔博士在1949年获得了哥本哈根大学的magister学位(相当于硕士学位),后来又回校于1957年获得天文学博士学位。在1950~1951学年,诺尔博士在英国剑桥国王学院学习天文学,然后来到美国进一步开展研究工作。这个工作涉及到使用早期的计算机(以EDSAC开始,这是世界上第一台实用的存储程序的电子计算机)用于天文学计算。1953年,他回到丹麦在哥本哈根天文台做科研助理。
1959年他加入了丹麦的第一家计算机公司 Regnecentralen的编译程序设计小组。在那里他是13人的国际Algol 60小组报告的主编,正是这个报告定义了Algol 60。他在1969年成为了哥本哈根大学计算学院的教授,并于1998年退休。
诺尔博士1963年获得了丹麦技术大学颁发的 G.A.Hagemann金奖,1966年丹麦电台的Jens Rosejaer奖,以及1986年的电学和电子工程师学会颁发的计算机先驱奖。
ACM将于2006年5月20日在加州的旧金山Westin街Francis饭店举行的每年一度的ACM颁奖宴会上颁发图灵奖。
彼得·诺尔 - 计算思维观点
显然,并不是所有的计算机科学工作者都认同对计算思维的这种看法。以研发Algol 60而著名,2005年图灵奖的获得者Peter Naur教授为代表的欧洲学派的观点尤其值得我们重视。虽然Naur得的是图灵奖,但他半个世纪有关人的相对于计算机的思维研究使他坚信人之思维的神经系统与计算机的根本没有相同之处(“no similarity whatever”)。因此,他几乎完全拒绝图灵关于智能的想法,特别是Turing Test所隐含的思想,认为图灵的整个论证都是站不住脚的,原因是他关于思维的想法是建立在错误的概念之上的,与心理学家William James所阐述的第一心理学事实,即“思维是一种延续的东西(thinking is something that goes on)”相悖。为此,Naur还建立了自己的神经系统的神经生理学描述(a neurophysiological description of the nervous system),称之为“The Synapse-State Theory of Mental Life”。但Naur的观点和成果有时被视为“离经叛道”,其有关文章也曾数次被主流杂志(包括CACM)退稿。
与本文直接相关的是Naur的一个“大胆”且关键性的结论:他认为,就科学和学术活动而言,计算只是作为一种描述形式才有意义,而有关逻辑和方法的话题是不相关的(“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进一步推断:尽管计算机这种形式能够描述世上非常多种类的现象,但人的思维不在其中(“This form is very useful for describing a great variety of phenomena of this world, but human thinking is not one of them”)。原因?人的思维基本上是神经系统中元素的可塑性之事,然而计算机—图灵机器并无塑性元素(“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并没有真正地回答,只是说:为了描述人的思维,我们需要一种非常不同的、非数字的形式, 如他的Synapse-State Theory所显示的(“For describing human thinking one needs a very different, non-digital form, as demonstrated by the Synapse-State Theory”)[5]。更具有杀伤力的是Naur声称这一切都已经由有关编程活动中应用形式描述的经验性研究所确认,毕竟他是这方面世界上最有权威的专家之一,也是最有资格发言的人之一。
表面上,Naur的观点与Wing在“计算思维”中阐述的思想直接冲突。特别是Naur的文章在 Wing一文发表后不久就在计算机科学界同一重要杂志上登出,自然容易引起人们的遐想。其实不然,Wing在文中特别强调:“人的,不是计算机的思维(A way that humans, not computers, think) ”。Wing进一步指出:“计算思维是人类求解问题的一条途径,但决非试图使人类像计算机那样的思考。”而且,“计算机枯燥且沉闷;人类聪颖且富有想象力。我们人类赋予计算机以激情。配置了计算设备,我们就能用自己的智慧去解决那些计算时代之前不敢尝试的问题,就能建造那些其功能仅仅受制于我们想象力的系统。”
关于这两篇文章的思想和观点在深层次上的异同,无法在此详细展开,但有两点,应当说明。其一就是Naur对他的计算思维观点之界定,即:是“就科学和学术活动而言”的;其二就是Wing对她的计算思维目标之定位,即:使其与“3R(读写算)”同等重要和普及。显然,“读写算”远远超出了“科学和学术活动”的范围,是对今日之现代人最基本的素质要求,已属基础文化技能的范畴。清楚地认识这两点,明确“科学和学术活动”与“文化和素质培养”的不同和关联,是正确地解读这两篇文章之间关系的关键。
不过,我对Naur的断言有所保留,因为人类的工具使用对人类的思维发展之影响,是人类自己难以预知的。前面已提过计算大师Dijkstra“工具影响思维”之断言,更有说服力的是达尔文的进化论和马克思关于劳动工具在从猿到人的过程中起关键作用的论断。机器最终能否描述人的思维,似乎不是今日人类可以知道甚至理解的。就像不论是远古还是今天的猿猴都根本无法明白当年的木棍石器怎么能把它们的猴脑猴思维变成现代的人脑人思维一样,今日之人及其子孙可能也无法明白眼前的计算机因特网会把他们的人脑人思维再演化成何脑何思维。如果将来我们的后代能弄明白,那是万幸,说明进化论没有把未来的人类演变成今日之猿猴(相对而言,但也十分可怕)。如果一定要在今天弄个明白,那只好再用 Dijkstra的话来回答:“机器能否思维的问题 …… 这个问题差不多与潜艇能否游泳的问题一样相关(The question of whether Machines Can Think ... is about as relevant as the question of whether Submarines Can Swim。)”我自己更赞同Wing的想法:“当计算思维真正融入人类活动的整体以致不再是一种显式之哲学的时候,它就将成为现实。”而且,届时计算思维也就必然是计算文化了。
彼得·诺尔 - 出版书目
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: Tnkning - 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