查看: 3523|回复: 0

2005 彼得-瑙尔

发表于 2022-4-17 22:58:23 | 显示全部楼层 |阅读模式

马上注册 与译者交流

您需要 登录 才可以下载或查看,没有帐号?立即注册

Peter Naur

25 October 1928, Frederiksberg, Denmark

3 January 2016, Herlev, Denmark

Gymnasium in Copenhagen (1947); mag. scient. degree, Astronomy (Copenhagen University, 1949); PhD astronomy (Copenhagen University, 1957).

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).

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
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.

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






G. A. Hagemann奖章(1963年);Jens Rosenkjaer奖(1966年);IEEE计算机协会计算机先锋奖(1986年);ACM Alan M. Turing奖(2005年)。

丹麦 - 2005
对编程语言设计和Algol 60的定义,对编译器设计,以及对计算机编程的艺术和实践的基本贡献。

彼得-瑙尔于1928年出生在丹麦弗雷德里克斯堡,是一个反宗教家庭中三个孩子中的最后一个。他的父亲阿尔伯特是一名画家。他的母亲苏珊娜-玛格丽特(Susanna Margarethe)没有特别的职业,但来自富裕的商业背景。艺术界和商界人士,如演员、剧作家和建筑师,都经常到瑙尔家来。尽管彼得的父母在1930年代中期离婚,这在当时是很不寻常的,但离婚并没有阻止彼得拥有一个丰富的童年。



剑桥的恶劣天气破坏了彼得的天文观测计划。相反,他花了很多时间对电子延迟存储自动计算器(EDSAC)进行编程,以解决天文学中的一个扰动问题。关于如何使用EDSAC的唯一文献是一本描述子程序库的手册,这是Maurice Wilkes、David Wheeler和Stanley Gill编写的著名书籍《电子数字计算机程序的编制》的前身。




尽管彼得已经成为一名具有国际地位的天文学家,但在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]的唯一编辑。




前面提到的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])。




作者。Edgar G. Daylight
您需要登录后才可以回帖 登录 | 立即注册


QQ|小黑屋|手机版|网站地图|关于我们|ECO中文网 ( 京ICP备06039041号  

GMT+8, 2024-5-28 08:54 , Processed in 1.252162 second(s), 20 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表