|
马上注册 与译者交流
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Peter Naur
PHOTOGRAPHS
BIRTH:
25 October 1928, Frederiksberg, Denmark
DEATH:
3 January 2016, Herlev, Denmark
EDUCATION:
Gymnasium in Copenhagen (1947); mag. scient. degree, Astronomy (Copenhagen University, 1949); PhD astronomy (Copenhagen University, 1957).
EXPERIENCE:
Research Student at King’s College, Cambridge (1950–1951); researcher in Astronomy (U.S.A. 1952–1953); scientific assistant at Copenhagen Observatory (1953–1959); programmer at Regnecentralen (Copenhagen) and lecturer at Copenhagen University (1959–1969); Professor at Institute of Datalogi, Copenhagen University (1969–1999).
HONORS AND AWARDS:
G. A. Hagemann Medal (1963); Jens Rosenkjaer Prize (1966); Computer Pioneer Award of the IEEE Computer Society (1986); ACM Alan M. Turing Award (2005).
PETER NAUR DL Author Profile link
Denmark – 2005
CITATION
For fundamental contributions to programming language design and the definition of Algol 60, to compiler design, and to the art and practice of computer programming.
SHORT ANNOTATED
BIBLIOGRAPHY
ACM TURING AWARD
LECTURE VIDEO
RESEARCH
SUBJECTS
ADDITIONAL
MATERIALS
Peter Naur was born in 1928 in Frederiksberg Denmark as the last of three children in an anti-religious family. His father, Albert, was a painter. His mother, Susanna Margarethe, had no particular profession but came from a wealthy commercial background. Both artistic and business-oriented people, such as actors, playwrights, and architects, visited the Naur home on a regular basis. Even though Peter’s parents divorced during the mid-1930s, which was quite unusual at the time, the divorce did not stop Peter from having a rich childhood.
Astronomy became Peter’s main passion. By the age of 12, he had already shown strong interest in his father’s collection of scientific books, including the works of the famous English astronomers James Jeans and Arthur Eddington. The absence of city lights during the German occupation of Denmark allowed Peter to observe the stars while sitting on his mother’s balcony. Even as a teenager Peter sought regular contact with professional astronomers at the Copenhagen Observatory. A couple of days each week he would ride his bike to the observatory after school to be taught by professionals how to calculate the orbits of comets and planets. He learned to use logarithm tables and the mechanical calculating machines of the Observatory, and solved differential equations by numerical techniques that were practically unknown except to astronomers. By the age of 15 Peter had already written his first scientific paper, which was published after the war [10]. He gave talks in school about Tycho Brahe, and about Danish physicist Niels Bohr, who he actually met at the time. In short, Peter was a prodigious child with a very promising future.
After high school, Peter went to gymnasium (1944-1947). He spent a lot of time in the public library reading widely, including books on psychology, a topic which would become increasingly important to Peter in later years. He studied astronomy at Copenhagen University and finished his degree in two years (1947-1949) instead of the regular five. After one year of military service, and on the recommendation of the great Danish astronomer Bengt Strömgren, Peter went to King’s College, Cambridge, to conduct research in both astronomy and the emerging field of computer programming (1950-1951).
The poor weather in Cambridge spoiled Peter’s plans for astronomical observation. Instead, he spent a lot of time programming the Electronic Delay Storage Automatic Calculator (EDSAC) in order to solve a perturbation problem in astronomy. The only documentation on how to use the EDSAC was a manual describing a library of subroutines, which was a precursor to the famous book, The Preparation of Programs for an Electronic Digital Computer, by Maurice Wilkes, David Wheeler and Stanley Gill.
As a boy, Peter had conducted hundreds of hours of computational work by hand at the Observatory of Copenhagen, so at Cambridge he already knew all the computational techniques. His energy therefore went into programming the EDSAC and, in particular, into dealing with the finite limitations of the machine, such as its limited number range. The reward for his efforts was that the machine was able to calculate in 20 seconds what would manually take two hours.
Peter’s stay at Cambridge was important for his later career in at least two ways. First, it provided an excellent tutorial on how to program and eliminate programming mistakes. Second, it was the place where he became acquainted with his life-long friend Peter Remnant, who introduced Naur to the works of several philosophers and psychologists [6] and, most notably, to William James’s The Principles of Psychology [8]. It would, however, take 20 more years before Peter would really start to study James’s work.
After his stay in Cambridge, Peter continued his astronomical research in the USA (1952-1953). There he met computing pioneers Howard Aiken at Harvard University and John von Neumann at Princeton, and learned the state of the art in computing [11]. After spending one more month in Cambridge in the summer of 1953, Peter returned to Denmark and married in 1954. He had three children before being divorced around 1969.
Even though Peter had become an astronomer of international standing, in the late 1950s he decided to leave that field behind for the non-academic occupation of computer programming. After joining Copenhagen’s computing center, Regnecentralen, his new boss, Niels Ivar Bech, asked Peter to participate in the development of the programming language that would later be called ALGOL (ALGorithmic Language). He first investigated the work of the Swiss-German ALCOR (ALgol COnverteR) group, which included Heinz Rutishauser in Zurich and Friedrich Bauer and Klaus Samelson in Munich. These three researchers were largely responsible for the 1958 Zurich Report which described the definition of the International Algebraic Language (IAL), a precursor to ALGOL.
In the interest of building a compiler for IAL, Peter and his colleague Jørn Jensen studied the Zurich Report in great detail. They found many ideas expressed in the report to be unclear, so Peter, Jensen, and Bech quickly organized a conference in Copenhagen in February 1959 at which 20 to 30 people from all over Europe discussed the Zurich Report. One of the main difficulties for the Danes lay in understanding the Zurich Report’s intended parameter passing mechanism for procedures. More specifically, the difficulty was that the ALCOR researchers viewed a procedure as a static mathematical object (i.e., as a closed function), while Peter and Jensen viewed it as a dynamic object and, hence, as something that typically has side effects. Understanding, let alone consolidating, the varying points of view at the conference was far too difficult. Peter realized that oral discussions did not work, and concocted the idea of having all parties put down their views in writing. He initiated a discussion journal, called the ALGOL Bulletin. By repeatedly sending out and receiving comments, the ALGOL Bulletin quickly became the official medium of communication, and Peter became, rather unintentionally, the leading European behind the ALGOL effort. He would later also become the sole editor of the very influential ALGOL 60 report [3].
In line with his later research, Peter’s main contribution to ALGOL lay in selecting the right forms of description to define the language. Contrary to most of his colleagues who were heavily defending (and quarreling about) specific language features, Peter put his efforts into meta considerations.
Two examples illustrate this. The first concerns the roundoff problems a programmer encounters when facing the finite limitations of his machine. Instead of describing every minute detail of, say, an addition or a multiplication, Peter insisted that all numbers in ALGOL were to be understood as approximations. Peter put ALGOL’s arithmetic operations on a solid basis by casting them in terms of the well-established field of numerical analysis.
The second example is about choosing an appropriate notation to define the syntax of the language. Backus’s now-famous 1959 paper [2] was one of many attempts to solve this vexing problem of the 1950s, and initially did not receive a lot of attention. It was Peter who, several months later, was able to apply it to ALGOL and demonstrate its practical usefulness. Peter modified Backus’s notation in slight but important ways [9] and used it to write a new report which was very different from the soon-obsolete Zurich Report.
The previously mentioned dichotomy between static solutions, as advocated by ALCOR, and dynamic solutions also played an important role in language implementation. Prior to Peter’s arrival, Regnecentralen had followed ALCOR’s static implementation approach with their DASK machine. Peter played a pivotal role in getting Regnecentralen to switch its focus from compiler design to concentrating first and foremost on the runtime system of an ALGOL implementation. This switch was much in line with what Edger Dijkstra and Jaap Zonneveld were already doing in Amsterdam [5,7]. By 1962, the Danes furthered the state of the art: their GIER computer system stood in sharp contrast to programming tradition in that it treated both data and programs during runtime as dynamically allocated storage. The Danish implementation automatically handled a backing store (drum) in addition to the working core store and, as a result, it could handle ALGOL programs even on the very small BESK machine [12].
During the rest of the 1960s, Peter played an increasingly important role in establishing computing as an academic field in Denmark. In 1966, he defined the courses he was teaching as datalogi; that is, as a science of data [13] and the term has been adopted into both Danish and Swedish to mean “computer science.” Besides teaching the basics of computing, Peter repeatedly stressed the importance of having students work on computer applications in other fields. By 1969, he was appointed professor at the Institute of Datalogi at Copenhagen University. He retired in 1999 at the age of 70.
During the 1960s, Peter played a pioneering role in research on program development. He was co-editor of the proceedings of the famous 1968 NATO Software Engineering conference that raised the spectre of a “software crisis” [14].
In 1970, Peter became a strong opponent of Edgar Dijkstra and Niklaus Wirth’s Structured Programming agenda. While Dijkstra and Wirth focused on how programming should ideally be done, Peter conducted empirical investigations in order to find out how programming actually is conducted [15]. In subsequent decades, Peter published several papers in which he scrutinized the work of the formalists. For Peter, the programmer had to be able to choose the form of description most suitable to his needs. Being forced into the straightjacket of one a priori fixed formal notation is counter-productive and even harmful for program development. By the 1980s, and after having penetrated further into the philosophical literature, Peter wrote a paper entitled “Programming as Theory Building” [8]. In hindsight, this paper was a starting point for the now-popular Agile Software Development movement (see e.g. Appendix B in Cockburn’s book [4]).
Though Peter does not want to be considered a philosopher, he acknowledges having been influenced by Popper, Quine, Russell, Ryle, and others. Peter’s writings of the 1970s and 1980s show how he borrowed concepts from philosophy to further his understanding of software engineering. In later years, he scrutinized work in philosophy and mathematical logic and rules. After studying the 1890 research of William James, Peter gradually developed his own theory of how mental processing works at the neural level of the nervous system. His 2006 Turing Award lecture [16] gives a glimpse of his work in this area.
During the 1990s and 2000s, after having studied William James’s work on psychology for decades, Peter wrote several books in which he scrutinizes various assumptions underlying western philosophy that many researchers in computing today take for granted.
Acknowledgment: This profile borrows much from two interviews with Peter Naur [1,6].
Author: Edgar G. Daylight
彼得-瑙尔
照片
出生地:丹麦
1928年10月25日,丹麦弗雷德里克斯堡
逝世
2016年1月3日,丹麦赫勒夫
教育背景。
哥本哈根体育学院(1947年);科学硕士学位,天文学(哥本哈根大学,1949年);天文学博士(哥本哈根大学,1957年)。
工作经验。
剑桥大学国王学院研究学生(1950-1951);天文学研究员(美国,1952-1953);哥本哈根天文台科学助理(1953-1959);Regnecentralen(哥本哈根)的程序员和哥本哈根大学的讲师(1959-1969);哥本哈根大学Datalogi研究所教授(1969-1999)。
获得的荣誉和奖项。
G. A. Hagemann奖章(1963年);Jens Rosenkjaer奖(1966年);IEEE计算机协会计算机先锋奖(1986年);ACM Alan M. Turing奖(2005年)。
PETER NAUR DL作者简介链接
丹麦 - 2005
嘉奖
对编程语言设计和Algol 60的定义,对编译器设计,以及对计算机编程的艺术和实践的基本贡献。
简短注释
书目
亚马逊图灵奖
讲座视频
研究
主题
额外的
材料
彼得-瑙尔于1928年出生在丹麦弗雷德里克斯堡,是一个反宗教家庭中三个孩子中的最后一个。他的父亲阿尔伯特是一名画家。他的母亲苏珊娜-玛格丽特(Susanna Margarethe)没有特别的职业,但来自富裕的商业背景。艺术界和商界人士,如演员、剧作家和建筑师,都经常到瑙尔家来。尽管彼得的父母在1930年代中期离婚,这在当时是很不寻常的,但离婚并没有阻止彼得拥有一个丰富的童年。
天文学成为彼得的主要爱好。12岁时,他已经对他父亲收藏的科学书籍表现出强烈的兴趣,包括英国著名天文学家詹姆斯-詹斯和阿瑟-爱丁顿的作品。在德国占领丹麦期间,由于没有城市的灯光,彼得可以坐在他母亲的阳台上观察星星。甚至在少年时期,彼得就寻求与哥本哈根天文台的专业天文学家定期接触。每周有几天,他都会在放学后骑车去天文台,让专业人士教他如何计算彗星和行星的轨道。他学会了使用对数表和天文台的机械计算机,并通过除天文学家外几乎不为人知的数字技术来解决微分方程。在15岁时,彼得已经写出了他的第一篇科学论文,并在战后发表[10]。他在学校里发表了关于第谷-布拉赫和丹麦物理学家尼尔斯-玻尔的演讲,当时他确实见到了玻尔。总而言之,彼得是个神童,有着非常美好的未来。
高中毕业后,彼得上了体育课(1944-1947)。他花了很多时间在公共图书馆广泛阅读,包括关于心理学的书籍,这个话题在以后的日子里对彼得越来越重要。他在哥本哈根大学学习天文学,用两年时间(1947-1949)完成了学位,而不是常规的五年。服完一年兵役后,在伟大的丹麦天文学家本特-斯特罗姆格伦的推荐下,彼得去了剑桥大学国王学院,从事天文学和新兴的计算机编程领域的研究(1950-1951)。
剑桥的恶劣天气破坏了彼得的天文观测计划。相反,他花了很多时间对电子延迟存储自动计算器(EDSAC)进行编程,以解决天文学中的一个扰动问题。关于如何使用EDSAC的唯一文献是一本描述子程序库的手册,这是Maurice Wilkes、David Wheeler和Stanley Gill编写的著名书籍《电子数字计算机程序的编制》的前身。
作为一个男孩,彼得在哥本哈根的天文台进行了数百小时的手工计算工作,所以在剑桥他已经知道所有的计算技术。因此,他的精力投入到EDSAC的编程中,特别是处理机器的有限限制,如其有限的数字范围。他的努力得到的回报是,机器能够在20秒内计算出人工需要两小时的结果。
彼得在剑桥大学的学习对他后来的职业生涯至少在两个方面很重要。首先,它提供了关于如何编程和消除编程错误的优秀教程。第二,他在这里认识了他的终身朋友彼得-雷姆南特,他向瑙尔介绍了一些哲学家和心理学家的作品[6],最值得一提的是,威廉-詹姆斯的《心理学原理》[8]。然而,又过了20年,彼得才真正开始研究詹姆斯的作品。
在剑桥逗留之后,彼得在美国继续他的天文学研究(1952-1953)。在那里,他遇到了哈佛大学的计算机先驱霍华德-艾肯和普林斯顿的约翰-冯-诺伊曼,并了解了计算机的技术状况[11]。1953年夏天,在剑桥又呆了一个月后,彼得回到了丹麦,并于1954年结婚。在1969年左右离婚之前,他有三个孩子。
尽管彼得已经成为一名具有国际地位的天文学家,但在20世纪50年代末,他决定离开这一领域,转而从事计算机编程这一非学术性职业。在加入哥本哈根的计算中心Regnecentralen后,他的新老板Niels Ivar Bech要求彼得参与开发后来被称为ALGOL(ALGorithmic Language)的编程语言。他首先调查了瑞士-德国ALCOR(ALgol COnverteR)小组的工作,该小组包括苏黎世的Heinz Rutishauser以及慕尼黑的Friedrich Bauer和Klaus Samelson。这三位研究人员主要负责1958年的苏黎世报告,该报告描述了国际代数语言(IAL)的定义,这是ALGOL的前身。
为了给IAL建立一个编译器,彼得和他的同事约恩-延森非常详细地研究了苏黎世报告。他们发现报告中表达的许多观点并不明确,因此彼得、延森和贝赫很快于1959年2月在哥本哈根组织了一次会议,来自欧洲各地的20至30人在会上讨论了苏黎世报告。丹麦人的主要困难之一在于理解苏黎世报告中预定的程序参数传递机制。更具体地说,困难在于ALCOR的研究人员将程序视为一个静态的数学对象(即一个封闭的函数),而Peter和Jensen则将其视为一个动态的对象,因此是一个通常有副作用的东西。理解,更不用说巩固会议上的不同观点了,这太难了。彼得意识到口头讨论是行不通的,于是想出了一个主意,让所有各方以书面形式写下他们的观点。他发起了一个讨论期刊,叫做《ALGOL公报》。通过反复发送和接收评论,《ALGOL公告》很快就成为了官方的交流媒介,而彼得也无意中成为了ALGOL工作背后的欧洲领导者。他后来还成为非常有影响力的ALGOL 60报告[3]的唯一编辑。
与他后来的研究一致,彼得对ALGOL的主要贡献在于选择正确的描述形式来定义语言。与他的大多数同事严重捍卫(和争论)具体的语言特征相反,Peter把他的努力放在元考虑上。
有两个例子可以说明这一点。第一个是关于一个程序员在面对他的机器的有限限制时遇到的舍入问题。彼得坚持认为,ALGOL中的所有数字都应该被理解为近似值,而不是描述每一个细节,例如加法或乘法。彼得将ALGOL的算术运算建立在一个坚实的基础上,将它们投射到成熟的数值分析领域。
第二个例子是关于选择一个适当的符号来定义语言的语法。巴克斯现在著名的1959年的论文[2]是20世纪50年代为解决这个令人困扰的问题所做的许多尝试之一,最初并没有得到很多关注。几个月后,是Peter将其应用于ALGOL,并证明了其实际用途。彼得以轻微但重要的方式修改了Backus的符号[9],并利用它写了一份新的报告,该报告与即将被淘汰的《苏黎世报告》非常不同。
前面提到的ALCOR所倡导的静态解决方案和动态解决方案之间的二分法也在语言实施中发挥了重要作用。在彼得上任之前,Regnecentralen公司的DASK机器一直遵循ALCOR公司的静态实施方法。彼得在促使Regnecentralen将重点从编译器设计转向首先集中在ALGOL实现的运行时系统方面发挥了关键作用。这一转变与Edger Dijkstra和Jaap Zonneveld在阿姆斯特丹已经在做的事情非常一致[5,7]。到1962年,丹麦人进一步提高了技术水平:他们的GIER计算机系统与编程传统形成鲜明对比,因为它在运行时将数据和程序都作为动态分配的存储。丹麦人的实现除了处理工作核心存储外,还自动处理备份存储(鼓),因此,即使在非常小的BESK机器上,它也能处理ALGOL程序[12]。
在1960年代余下的时间里,彼得在将计算作为一个学术领域在丹麦建立起来方面发挥了越来越重要的作用。1966年,他将他所教授的课程定义为datalogi;也就是说,作为一门数据科学[13],这个词被丹麦语和瑞典语采用,意为 "计算机科学"。除了教授计算的基础知识,彼得还反复强调让学生在其他领域从事计算机应用的重要性。到1969年,他被任命为哥本哈根大学Datalogi研究所的教授。他于1999年退休,享年70岁。
在20世纪60年代,彼得在程序开发研究方面发挥了先锋作用。他是著名的1968年北约软件工程会议论文集的共同编辑,这次会议提出了 "软件危机 "的幽灵[14]。
1970年,Peter成为Edgar Dijkstra和Niklaus Wirth的结构化编程议程的强烈反对者。当Dijkstra和Wirth关注于编程在理想情况下应该如何进行时,Peter进行了经验调查,以找出编程实际是如何进行的[15]。在随后的几十年里,Peter发表了几篇论文,其中他仔细研究了形式主义者的工作。对Peter来说,程序员必须能够选择最适合他的需求的描述形式。被强行塞进一种先验的固定形式符号的束缚中,对程序开发来说是适得其反的,甚至是有害的。到了20世纪80年代,在进一步深入研究了哲学文献之后,Peter写了一篇题为 "作为理论建设的编程 "的论文[8]。事后看来,这篇论文是现在流行的敏捷软件开发运动的一个起点(例如,见Cockburn书中的附录B[4])。
尽管彼得不想被认为是一个哲学家,但他承认受到了波普尔、奎因、罗素、赖尔等人的影响。彼得在70年代和80年代的著作显示了他是如何从哲学中借用概念来进一步理解软件工程的。在晚年,他仔细研究了哲学和数理逻辑和规则方面的工作。在研究了威廉-詹姆斯1890年的研究后,彼得逐渐形成了自己的理论,即心理处理如何在神经系统的神经层面上发挥作用。他在2006年的图灵奖演讲[16]中对他在这一领域的工作做了一个概述。
在20世纪90年代和21世纪,在研究了威廉-詹姆斯的心理学工作数十年之后,彼得写了几本书,在书中他仔细研究了西方哲学中的各种假设,而今天许多计算机领域的研究人员都认为这些假设是理所当然的。
鸣谢。本简介在很大程度上借用了对彼得-瑙尔的两次采访[1,6]。
作者。Edgar G. Daylight |
|