An Interview with Edsger W. Dijkstra the Computer Science Luminary, in One of His Last Interviews Before His Death in 2002, Reflects on a Programmer’S Life
Total Page:16
File Type:pdf, Size:1020Kb
viewpoints Vdoi:10.1145/1787234.1787249 Thomas J. Misa, Editor Interview An Interview with edsger W. dijkstra The computer science luminary, in one of his last interviews before his death in 2002, reflects on a programmer’s life. he charles Babbage InstItute holds one of the world’s largest collections of re- search-grade oral history interviews relating to the Thistory of computers, software, and networking. Most of the 350 inter- views have been conducted in the context of specific research projects, which facilitate the interviewer’s ex- tensive preparation and often sug- gest specific lines of questions. Tran- scripts from these oral histories are a key source in understanding the his- tory of computing, since traditional historical sources are frequently in- complete. This interview with pro- gramming pioneer Edsger Dijkstra (1930–2002) was conducted by CBI researcher Phil Frana at Dijkstra’s home in Austin, TX, in August 2001 for a NSF-KDI project on “Building a Future for Software History.” Winner of ACM’s A.M. Turing Award in 1972, Dijkstra is well known for his contributions to computer n I science as well as his colorful assess- ust a ments of the field. His contributions to this magazine continue to enrich exas at t F new generations of computing scien- ty o I tists and practitioners. ers iv We present this interview post- n u e humously on the eighth anniver- Th F sary of Dijkstra’s death at age 72 in August 2002; this interview has been ourtesy o condensed from the complete tran- C ph script, available at http://www.cbi.umn. ra G edu/oh. oto H P —Thomas J. Misa august 2010 | vol. 53 | no. 8 | communicaTionS of The acm 41 viewpoints how did your career start? Sydney or Melbourne. The final part of It all started in 1951, when my father the journey was on an F27 to Canber- enabled me to go to a programming i had never ra. And we arrived and I met my host, course in Cambridge, England. It was used someone whom I had never met before. And he a frightening experience: the first time was very apologetic that this world that I left the Netherlands, the first time else’s software. traveler had to do the last leg of the I ever had to understand people speak- if something journey on such a shaky two-engine ing English. I was all by myself, trying turboprop. And it gave me the dear to follow a course on a totally new topic. went wrong, i had opportunity for a one-upmanship that But I liked it very much. The Nether- done it. and it was I never got again. I could honestly say, lands was such a small country that “Dr. Stanton, I felt quite safe: I calcu- Aad van Wijngaarden, who was the di- that unforgivingness lated the resonance frequencies of the rector of the Computation Department that challenged me. wings myself.” [laughter] of the Mathematical Centre in Amster- In 1956, as soon as I had decided to dam, knew of this, and he offered me a become a programmer, I finished my job. And on a part-time basis, I became studies as quickly as possible, since I the programmer of the Mathematical no longer felt welcome at the univer- Centre in March of 1952. They didn’t sity: the physicists considered me as have computers yet; they were trying to a deserter, and the mathematicians build them. The first eight years of my friends, because if you asked them were dismissive and somewhat con- programming there I developed the what their professional competence temptuous about computing. In the basic software for a series of machines consisted of, they could point out that mathematical culture of those days being built at the Mathematical Cen- they knew everything about triodes, you had to deal with infinity to make tre. In those years I was a very conser- pentodes, and other electronic gear. your topic scientifically respectable. vative programmer. The way in which And there was nothing I could point to! programs were written down, the form I spoke with van Wijngaarden in there’s a curious story behind your of the instruction code on paper, the 1955, and he agreed that there was no “shortest path” algorithm. library organization; it was very much such thing as a clear scientific compo- In 1956 I did two important things, modeled after what I had seen in 1951 nent in computer programming, but I got my degree and we had the festive in Cambridge. that I might very well be one of the peo- opening of the ARMAC.c We had to have ple called to make it a science. And at a demonstration. Now the ARRA, a few When you got married in 1957, you the time, I was the kind of guy to whom years earlier, had been so unreliable could not enter the term “programmer” you could say such things. As I said, I that the only safe demonstration we into your marriage record? was trained to become a scientist. dared to give was the generation of ran- That’s true. I think that “program- dom numbers, but for the more reliable mer” became recognized in the early What projects did you work on in Am- ARMAC I could try something more am- 1960s. I was supposed to study theoreti- sterdam? bitious. For a demonstration for non- cal physics, and that was the reason for When I came in 1952, they were computing people you have to have a going to Cambridge. However, in 1955 working on the ARRA,a but they could problem statement that non-mathema- after three years of programming, while not get it reliable, and an updated ver- ticians can understand; they even have I was still a student, I concluded that the sion was built, using selenium diodes. to understand the answer. So I designed intellectual challenge of programming And then the Mathematical Centre a program that would find the shortest was greater than the intellectual chal- built a machine for Fokker Aircraft route between two cities in the Nether- lenge of theoretical physics, and as a Industry. So the FERTA,b an updated lands, using a somewhat reduced road- result I chose programming. Program- version of the ARRA, was built and in- map of the Netherlands, on which I had ming was so unforgiving. If something stalled at Schiphol. The installation selected 64 cities (so that in the coding went wrong, I mean a zero is a zero and I did together with the young Gerrit six bits would suffice to identify a city). a one is a one. I had never used some- Blaauw who later became one of the What’s the shortest way to travel one else’s software. If something went designers of the IBM 360, with Gene from Rotterdam to Groningen? It is the wrong, I had done it. And it was that un- Amdahl and Fred Brooks. algorithm for the shortest path, which forgivingness that challenged me. One funny story about the Fairchild I designed in about 20 minutes. One I also began to realize that in some F27: On my first visit to Australia, I flew morning I was shopping in Amsterdam strange way, programs could become on a big 747 from Amsterdam to Los with my young fiancée, and tired, we sat very complicated or tricky. So it was Angeles, then on another 747 I flew to down on the café terrace to drink a cup in 1955 when I decided not to become of coffee and I was just thinking about a physicist, to become a programmer whether I could do this, and I then instead. At the time programming a Automatische Relais Rekenmachine Amster- dam = Automatic Relay Calculator Amsterdam. didn’t look like doing science; it was b Fokker Electronische Rekenmachine Te Am- c Automatische Rekenmachine MAthematische just a mixture of being ingenious and sterdam = Fokker Electronic Calculator In Centrum = Automatic Calculator Mathemati- being accurate. I envied my hardware Amsterdam cal Centre 42 communicaTionS of The acm | august 2010 | vol. 53 | no. 8 viewpoints designed the algorithm for the short- would write down the formal specifi- the OS/360 monitor idea would have est path. As I said, it was a 20-minute cation of the machine, and all three of never occurred to a european? invention. In fact, it was published in us would sign it with our blood, so to No, we were too poor to consider it 1959, three years later. The publication speak. And then our ways parted. All the and we also decided that we should try is still quite nice. One of the reasons programming I did was on paper. So I to structure our designs in such a way that it is so nice was that I designed was quite used to developing programs that we could keep things under our in- it without pencil and paper. Without without testing them. tellectual control. This was a major dif- pencil and paper you are almost forced There was not a way to test them, so ference between European and Ameri- to avoid all avoidable complexities. you’ve got to convince yourself of their can attitudes about programming. Eventually that algorithm became, to correctness by reasoning about them. my great amazement, one of the cor- A simple writing error did not matter how did the notion of program proofs nerstones of my fame. I found it in the as long as the machine wasn’t there yet, arise? early 1960s in a German book on man- and as soon as errors would show up In 1959, I had challenged my col- agement science—“Das Dijkstra’sche on the machine, they would be simple leagues at the Mathematical Centre Verfahren” [“Dijkstra’s procedure”].