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