# Edsger W. Dijkstra

Edsger Wybe Dijkstra (/ˈdaɪkstrə/ DYKE-strə; Dutch: ; 11 May 1930 – 6 August 2002) was a Dutch computer scientist, programmer, software engineer, mathematician, and science essayist.
Born in Rotterdam in the Netherlands, Dijkstra studied mathematics and physics and then theoretical physics at the University of Leiden. Adriaan van Wijngaarden offered him a job as the first computer programmer in the Netherlands at the Mathematical Centre in Amsterdam, where he worked from 1952 until 1962. He formulated and solved the shortest path problem in 1956, and in 1960 developed the first compiler for the programming language ALGOL 60 in conjunction with colleague Jaap A. Zonneveld. In 1962 he moved to Eindhoven, and later to Nuenen, where he became a professor in the Mathematics Department at the Technische Hogeschool Eindhoven. In the late 1960s he built the THE multiprogramming system, which influenced the designs of subsequent systems through its use of software-based paged virtual memory. Dijkstra joined Burroughs Corporation as its sole research fellow in August 1973. The Burroughs years saw him at his most prolific in output of research articles. He wrote nearly 500 documents in the "EWD" series, most of them technical reports, for private circulation within a select group.
Dijkstra accepted the Schlumberger Centennial Chair in the Computer Science Department at the University of Texas at Austin in 1984, working in Austin, USA, until his retirement in November 1999. He and his wife returned from Austin to his original house in Nuenen, where he died on 6 August 2002 after a long struggle with cancer.
He received the 1972 Turing Award for fundamental contributions to developing structured programming languages. Shortly before his death, he received the ACM PODC Influential Paper Award in distributed computing for his work on self-stabilization of program computation. This annual award was renamed the Dijkstra Prize the following year, in his honor.

## Life and works
### Early years

Edsger W. Dijkstra was born in Rotterdam. His father was a chemist who was president of the Dutch Chemical Society; he taught chemistry at a secondary school and was later its superintendent. His mother was a mathematician, but never had a formal job.
Dijkstra had considered a career in law and had hoped to represent the Netherlands in the United Nations. However, after graduating from school in 1948, at his parents' suggestion he studied mathematics and physics and then theoretical physics at the University of Leiden.
In the early 1950s, electronic computers were a novelty. Dijkstra stumbled on his career by accident, and through his supervisor, Professor Johannes Haantjes [nl], he met Adriaan van Wijngaarden, the director of the Computation Department at the Mathematical Centre in Amsterdam, who offered Dijkstra a job; he officially became the Netherlands' first "programmer" in March 1952.
Dijkstra remained committed to physics for some time, working on it in Leiden three days out of each week. With increasing exposure to computing, however, his focus began to shift. As he recalled:
   After having programmed for some three years, I had a discussion with A. van Wijngaarden, who was then my boss at the Mathematical Center in Amsterdam, a discussion for which I shall remain grateful to him as long as I live. The point was that I was supposed to study theoretical physics at the University of Leiden simultaneously, and as I found the two activities harder and harder to combine, I had to make up my mind, either to stop programming and become a real, respectable theoretical physicist, or to carry my study of physics to a formal completion only, with a minimum of effort, and to become....., yes what? A programmer? But was that a respectable profession? For after all, what was programming? Where was the sound body of knowledge that could support it as an intellectually respectable discipline? I remember quite vividly how I envied my hardware colleagues, who, when asked about their professional competence, could at least point out that they knew everything about vacuum tubes, amplifiers and the rest, whereas I felt that, when faced with that question, I would stand empty-handed. Full of misgivings I knocked on Van Wijngaarden's office door, asking him whether I could "speak to him for a moment"; when I left his office a number of hours later, I was another person. For after having listened to my problems patiently, he agreed that up till that moment there was not much of a programming discipline, but then he went on to explain quietly that automatic computers were here to stay, that we were just at the beginning and could not I be one of the persons called to make programming a respectable discipline in the years to come? This was a turning point in my life and I completed my study of physics formally as quickly as I could.
When Dijkstra married Maria "Ria" C. Debets in 1957, he was required as a part of the marriage rites to state his profession. He stated that he was a programmer, which was unacceptable to the authorities, there being no such profession then in The Netherlands.
In 1959, he received his PhD from the University of Amsterdam for a thesis entitled 'Communication with an Automatic Computer', devoted to a description of the assembly language designed for the first commercial computer developed in the Netherlands, the Electrologica X1. His thesis supervisor was Van Wijngaarden.

### Mathematisch Centrum, Amsterdam

From 1952 until 1962, Dijkstra worked at the Mathematisch Centrum in Amsterdam, where he worked closely with Bram Jan Loopstra and Carel S. Scholten, who had been hired to build a computer. Their mode of interaction was disciplined: They would first decide upon the interface between the hardware and the software, by writing a programming manual. Then the hardware designers would have to be faithful to their part of the contract, while Dijkstra, the programmer, would write software for the nonexistent machine. Two of the lessons he learned from this experience were the importance of clear documentation, and that program debugging can be largely avoided through careful design. Dijkstra formulated and solved the shortest path problem for a demonstration at the official inauguration of the ARMAC computer in 1956. Because of the absence of journals dedicated to automatic computing, he did not publish the result until 1959.
At the Mathematical Centre, Dijkstra and his colleague Jaap Zonneveld [nl] developed the first compiler for the programming language ALGOL 60 by August 1960, more than a year before a compiler was produced by another group. ALGOL 60 is known as a key advance in the rise of structured programming.

### Eindhoven University of Technology

In 1962, Dijkstra moved to Eindhoven, and later to Nuenen, in the south of the Netherlands, where he became a professor in the Mathematics Department at the Eindhoven University of Technology. The university did not have a separate computer science department and the culture of the mathematics department did not particularly suit him. Dijkstra tried to build a group of computer scientists who could collaborate on solving problems. This was an unusual model of research for the Mathematics Department. In the late 1960s, he built the THE operating system (named for the university, then known as Technische Hogeschool Eindhoven), which has influenced the designs of subsequent operating systems through its use of software-based paged virtual memory.

### Burroughs Corporation

Dijkstra joined the Burroughs Corporation—a company known then for producing computers based on an innovative hardware architecture—as its research fellow in August 1973. His duties consisted of visiting some of the firm's research centers a few times a year and carrying on his own research, which he did in the smallest Burroughs research facility, namely, his study on the second floor of his house in Nuenen. In fact, Dijkstra was the only research fellow of Burroughs and worked for it from home, occasionally travelling to its branches in the United States. As a result, he reduced his appointment at the university to one day a week. That day, Tuesday, soon became known as the day of the famous 'Tuesday Afternoon Club', a seminar during which he discussed with his colleagues scientific articles, looking at all aspects: notation, organisation, presentation, language, content, etc. Shortly after he moved in 1984 to the University of Texas at Austin (USA), a new 'branch' of the Tuesday Afternoon Club emerged in Austin, Texas.
The Burroughs years saw him at his most prolific in output of research articles. He wrote nearly 500 documents in the EWD series (described below), most of them technical reports, for private circulation within a select group.

### The University of Texas at Austin

Dijkstra accepted the Schlumberger Centennial Chair in the Computer Science Department at the University of Texas at Austin in 1984.

### Last years

Dijkstra worked in Austin until his retirement in November 1999. To mark the occasion and to celebrate his forty-plus years of seminal contributions to computing science, the Department of Computer Sciences organized a symposium, which took place on his 70th birthday in May 2000.
Dijkstra and his wife returned from Austin to his original house in Nuenen, Netherlands, where he found that he had only months to live. He said that he wanted to retire in Austin, Texas, but to die in the Netherlands. Dijkstra died on 6 August 2002 after a long struggle with cancer. He and his wife were survived by their three children: Marcus, Femke, and the computer scientist Rutger M. Dijkstra.

## Personality
### Character

   You can hardly blame M.I.T. for not taking notice of an obscure computer scientist in a small town in the Netherlands.
In the world of computing science, Dijkstra is well known as a "character". In the preface of his book A Discipline of Programming (1976) he stated the following: "For the absence of a bibliography I offer neither explanation nor apology." In fact, most of his articles and books have no references at all. Dijkstra chose this way of working to preserve his self-reliance.
As a university professor for much of his life, Dijkstra saw teaching not just as a required activity but as a serious research endeavour. His approach to teaching was unconventional. His lecturing style has been described as idiosyncratic. When lecturing, the long pauses between sentences have often been attributed to the fact that English is not Dijkstra's first language. However the pauses also served as a way for him to think on his feet and he was regarded as a quick and deep thinker while engaged in the act of lecturing. His courses for students in Austin had little to do with computer science but they dealt with the presentation of mathematical proofs. At the beginning of each semester, he would take a photo of each of his students in order to memorize their names. He never followed a textbook, with the possible exception of his own while it was under preparation. When lecturing, he would write proofs in chalk on a blackboard rather than using overhead foils. He invited the students to suggest ideas, which he then explored, or refused to explore because they violated some of his tenets. He assigned challenging homework problems, and would study his students' solutions thoroughly. He conducted his final examinations orally, over a whole week. Each student was examined in Dijkstra's office or home, and an exam lasted several hours.
Dijkstra was also highly original in his way of assessing people's capacity for a job. When Vladimir Lifschitz came to Austin in 1990 for a job interview, Dijkstra gave him a puzzle. Lifschitz solved it and has been working in Austin since then.

### Use of technology

He eschewed the use of computers in his own work for many decades. Even after he succumbed to his UT colleagues' encouragement and acquired a Macintosh computer, he used it only for e-mail and for browsing the World Wide Web. Dijkstra never wrote his articles using a computer. He preferred to rely on his typewriter and later on his Montblanc pen. Dijkstra's favorite writing instrument was the Montblanc Meisterstück fountain pen.
He had no use for word processors, believing that one should be able to write a letter or article without rough drafts, rewriting, or any significant editing. He would work it all out in his head before putting pen to paper, and once mentioned that when he was a physics student he would solve his homework problems in his head while walking the streets of Leiden. Most of Dijkstra's publications were written by him alone. He never had a secretary and took care of all his correspondence alone. When colleagues prepared a Festschrift for his sixtieth birthday, published by Springer-Verlag, he took the trouble to thank each of the 61 contributors separately, in a hand-written letter.
In The Humble Programmer (1972), Dijkstra wrote: "We must not forget that it is not our [computing scientists'] business to make programs, it is our business to design classes of computations that will display a desired behaviour."
Dijkstra also opposed the inclusion of software engineering under the umbrella of academic computer science. He wrote that, "As economics is known as "The Miserable Science", software engineering should be known as "The Doomed Discipline", doomed because it cannot even approach its goal since its goal is self-contradictory." And "software engineering has accepted as its charter 'How to program if you cannot.'"

### Personal life

Dijkstra led a modest lifestyle, to the point of being spartan. His and his wife's house in Nuenen was simple, small and unassuming. He did not own a television, a video player, or a mobile telephone, and did not go to the movies. He played the piano, and, while in Austin, liked to go to concerts. An enthusiastic listener of classical music, Dijkstra's favorite composer was Mozart.

## Essays and other writing

Throughout Dijkstra's career, his work was characterized by elegance and economy. A prolific writer (especially as an essayist), Dijkstra authored more than 1,300 papers, many written by hand in his precise script. They were essays and parables; fairy tales and warnings; comprehensive explanation and pedagogical pretext. Most were about mathematics and computer science; others were trip reports that are more revealing about their author than about the people and places visited. It was his habit to copy each paper and circulate it to a small group of colleagues who would copy and forward the papers to another limited group of scientists.

### EWDs

Dijkstra was well known for his habit of carefully composing manuscripts with his fountain pen. The manuscripts are called EWDs, since Dijkstra numbered them with EWD, his initials, as a prefix. According to Dijkstra himself, the EWDs started when he moved from the Mathematical Centre in Amsterdam to the Eindhoven University of Technology (then Technische Hogeschool Eindhoven). After going to Eindhoven, Dijkstra experienced a writer's block for more than a year. He distributed photocopies of a new EWD among his colleagues. Many recipients photocopied and forwarded their copies, so the EWDs spread throughout the international computer science community. The topics were computer science and mathematics, and included trip reports, letters, and speeches. These short articles span a period of 40 years. Almost all EWDs appearing after 1972 were hand-written. They are rarely longer than 15 pages and are consecutively numbered. The last one, No. 1318, is from 14 April 2002. Within computer science they are known as the EWD reports, or, simply the EWDs. More than 1300 EWDs have been scanned, with a growing number transcribed to facilitate search, and are available online at the Dijkstra archive of the University of Texas.

### Writing style

His interest with simplicity came at an early age and under his mother's guidance. He once said he had asked his mother whether trigonometry was a difficult topic. She replied that he must learn all the formulas and that further, if he required more than five lines to prove something, he was on the wrong track.
Dijkstra was famous for his wit, eloquence, rudeness, abruptness and often cruelty to fellow professionals, and way with words, such as in his remark, "The question of whether Machines Can Think (…) is about as relevant as the question of whether Submarines Can Swim." His advice to a promising researcher, who asked how to select a topic for research, was the phrase: "Do only what only you can do". Dijkstra was also known for his vocal criticism and absence of social skills when interacting with colleagues. As an outspoken and critical visionary, he strongly opposed the teaching of BASIC.

### Recurring themes

In many of his more witty essays, Dijkstra described a fictional company of which he served as chairman. The company was called Mathematics, Inc., a company that he imagined having commercialized the production of mathematical theorems in the same way that software companies had commercialized the production of computer programs. He invented a number of activities and challenges of Mathematics Inc. and documented them in several papers in the EWD series. The imaginary company had produced a proof of the Riemann Hypothesis but then had great difficulties collecting royalties from mathematicians who had proved results assuming the Riemann Hypothesis. The proof itself was a trade secret. Many of the company's proofs were rushed out the door and then much of the company's effort had to be spent on maintenance. A more successful effort was the Standard Proof for Pythagoras' Theorem, that replaced the more than 100 incompatible existing proofs. Dijkstra described Mathematics Inc. as "the most exciting and most miserable business ever conceived". EWD 443 (1974) describes his fictional company as having over 75% of the world's market share.

## Legacy

Dijkstra won the Turing award in 1972 for his advocacy of structured programming, a programming paradigm that makes use of structured control flow as opposed to unstructured jumps to different sections in a program using Goto statements. His 1968 letter to the editor of Communications of ACM, "Go To statement considered harmful", caused a major debate. Modern programmers generally adhere to the paradigm of structured programming.
Among his most famous contributions to computer science is shortest path algorithm, known as Dijkstra's algorithm, widely taught in modern computer science undergraduate courses. His other contributions included the Shunting yard algorithm; the THE multiprogramming system, an important early example of structuring a system as a set of layers; the Banker's algorithm; and the semaphore construct for coordinating multiple processors and programs. Another concept formulated by Dijkstra in the field of distributed computing is that of self-stabilization – an alternative way to ensure the reliability of the system. Dijkstra's algorithm is used in SPF, Shortest Path First, which is used in the routing protocols OSPF and IS-IS.

## Awards and honors

Among Dijkstra's awards and honors are:
* Member of the Royal Netherlands Academy of Arts and Sciences (1971)
* Distinguished Fellow of the British Computer Society (1971)
* The Association for Computing Machinery's A.M. Turing Award (1972)
* Harry H. Goode Memorial Award from the IEEE Computer Society (1974).
* Foreign Honorary Member of the American Academy of Arts and Sciences (1975)
* Doctor of Science Honoris Causa from the Queen's University Belfast (1976)
* Computer Pioneer Charter Recipient from the IEEE Computer Society (1982)
* ACM/SIGCSE Award for Outstanding Contributions to Computer Science Education (1989)
* Fellow of the Association for Computing Machinery (1994)
* Honorary doctorate from the Athens University of Economics & Business, Greece (2001).
In 1969, the British Computer Society (BCS) received approval for an award and fellowship, Distinguished Fellow of the British Computer Society (DFBCS), to be awarded under bylaw 7 of their royal charter. In 1971, the first election was made, to Dijkstra.
In 1990, on occasion of Dijkstra's 60th birthday, the Department of Computer Science (UTCS) at the University of Texas at Austin organized a two-day seminar in his honor. Speakers came from all over the United States and Europe, and a group of computer scientists contributed research articles which were edited into a book.
In 2002, the C&C Foundation of Japan recognized Dijkstra "for his pioneering contributions to the establishment of the scientific basis for computer software through creative research in basic software theory, algorithm theory, structured programming, and semaphores." Dijkstra was alive to receive notice of the award, but it was accepted by his family in an award ceremony after his death.
Shortly before his death in 2002, Dijkstra received the ACM PODC Influential-Paper Award in distributed computing for his work on self-stabilization of program computation. This annual award was renamed the Dijkstra Prize (Edsger W. Dijkstra Prize in Distributed Computing) the following year, in his honor.
The Dijkstra Award for Outstanding Academic Achievement in Computer Science (Loyola University Chicago, Department of Computer Science) is named for Edsger W. Dijkstra. Beginning in 2005, this award recognizes the top academic performance by a graduating computer science major. Selection is based on GPA in all major courses and election by department faculty.
The Department of Computer Science (UTCS) at the University of Texas at Austin hosted the inaugural Edsger W. Dijkstra Memorial Lecture on 12 October 2010. Tony Hoare, Emeritus Professor at Oxford and Principal Researcher at Microsoft Research, was the speaker for the event. This lecture series was made possible by a generous grant from Schlumberger to honor the memory of Dijkstra.

## Selected publications
### Books

* — (1962). A Primer of ALGOL 60 Programming: Together with Report on the Algorithmic Language ALGOL 60. Academic Press. ISBN 978-0122162503.
* —; Dahl, Ole-Johan; Hoare, C.A.R. (1972). Structured Programming. Academic Press. ISBN 978-0-12-200550-3.
* — (1976). A Discipline of Programming. Prentice Hall. ISBN 978-0132158718.
* — (1982). Selected Writings on Computing: A Personal Perspective. Monographs in Computer Science. Springer. ISBN 978-0387906522.
* —; Feijen, W.H.J.; Sterringa, Joke (1988). A Method of Programming. Addison-Wesley. ISBN 978-0201175363.
* —; Scholten, Carel S. (1990). Predicate Calculus and Program Semantics. Texts and Monographs in Computer Science. Springer-Verlag. ISBN 978-0387969572.

### Selected articles

* — (1959). "A Note on Two Problems in Connexion with Graphs" (PDF). Numerische Mathematik. 23 (3): 269–271. CiteSeerX 10.1.1.165.7577. doi:10.1007/BF01386390. S2CID 123284777.
* — (1962). "Some Meditations on Advanced Programming". Proc. IFIP Congress. Amsterdam: North-Holland. pp. 535–8.
* — (1965). Cooperating Sequential Processes (Technical report). Technische Hogeschool Eindhoven. EWD-123. Retrieved 20 September 2020. Reprinted in Genuys, F., ed. (1968). Programming Languages: N.A.T.O. Advanced Summer School Held in Villard-de-Lans in 1966. Academic Press. pp. 43–112. OCLC 499952053. Published as Dijkstra, E.W. (1968). "Cooperating Sequential Processes". In Hansen, P.B. (ed.). The Origin of Concurrent Programming. New York: Springer. pp. 65–138. doi:10.1007/978-1-4757-3472-0_2. ISBN 978-1-4419-2986-0.
* — (1965). "Solution of a Problem in Concurrent Programming Control". Comm. ACM. 8 (9): 569. doi:10.1145/365559.365617. S2CID 19357737.
* — (1965). "Programming Considered as a Human Activity". Proc. IFIP Congress. pp. 213–7.
* — (1968). "Go To Statement Considered Harmful". Letters to the editor. Comm. ACM. 11 (3): 147–8. doi:10.1145/362929.362947. S2CID 17469809.
* — (1968). "A Constructive Approach to the Problem of Program Correctness". BIT Numerical Mathematics. 8 (3): 174–186. doi:10.1007/bf01933419. S2CID 62224342.
* — (May 1968). "The Structure of the 'THE'-Multiprogramming System". ACM Symp. on Operating Systems. Comm. ACM. 11 (5): 341–346. doi:10.1145/363095.363143. S2CID 2021311.
* — (April 1970). Notes on Structured Programming (PDF) (Report). 70-WSK-03 – via E.W. Dijkstra Archive. Center for American History, University of Texas at Austin.
* — (1971). A Short Introduction to the Art of Computer Programming. Eindhoven: Technische Hogeschool. OCLC 3474242. EWD316.
* — (1971). "Hierarchical Ordering of Sequential Processes". Acta Inform. 1 (2): 115–138. doi:10.1007/bf00289519. S2CID 31573213.
* — (1972). "The Humble Programmer". Comm. ACM. 15 (10): 859–866. doi:10.1145/355604.361591.
* — (June–July 1974). "Programming as a Discipline of Mathematical Nature". American Mathematical Monthly. 81 (6): 608–612. doi:10.2307/2319209. JSTOR 2319209.
* — (1974). "On the role of scientific thought". E.W. Dijkstra Archive, Center for American History, University of Texas at Austin. EWD447.
* — (1974). "Self-stabilizing Systems in Spite of Distributed Control". Comm. ACM. 17 (11): 643–4. doi:10.1145/361179.361202. S2CID 11101426.
* — (1975). "How do we tell truths that might hurt?". Selected Writings on Computing: A Personal Perspective. Monographs in Computer Science. Springer (published 1982). pp. 129–131. ISBN 978-0387906522.
* — (1975). "Craftsman or Scientist". ACM Pacific 1975. pp. 217–223.
* — (1975). "On the teaching of programming, i. e. on the teaching of thinking". Language Hierarchies and Interfaces. 1975: 1–10.
* — (1977). "Programming: From Craft to Scientific Discipline". International Computing Symposium. 1977: 23–30.
* — (1978). "On the Interplay between Mathematics and Programming". Program Construction. Lecture Notes in Computer Science. Vol. 69. pp. 35–46. doi:10.1007/BFb0014649. ISBN 978-3-540-09251-3. S2CID 26233314.
* — (1975). "Correctness Concerns And, Among Other Things, Why They Are Resented". (ACM) Proceedings of the International Conference on Reliable Software. 21–23 April 1975, Los Angeles, California, USA: 546–550.
* — (1975). "Guarded Commands, Nondeterminacy and Formal Derivation of Programs". Comm. ACM. 18 (8): 453–7. doi:10.1145/360933.360975. S2CID 1679242.
* — (1978). "Finding the Correctness Proof of a Concurrent Program". Program Construction. 1978: 24–34.
* — (1984). "The threats to computing science". E.W. Dijkstra Archive, Center for American History, University of Texas at Austin. EWD898.
* — (1986). "On a Cultural Gap". The Mathematical Intelligencer. 8 (1): 48–52. doi:10.1007/BF03023921. S2CID 120847834.
* — (1987). "Mathematicians and Computing Scientists: The Cultural Gap". Abacus. 4 (4): 26–31.
* — (1989). "On the Cruelty of Really Teaching Computer Science". A debate on teaching computing science. Comm. ACM. 32 (12): 1398–1404. doi:10.1145/76380.76381. S2CID 16961489.
* — (1999). "Computing Science: Achievements and Challenges". ACM SIGAPP Applied Computing Review. 7 (2): 2–9. doi:10.1145/335527.335528. S2CID 34430415.
* — (2001). "The End of Computing Science?". Comm. ACM. 44 (3): 92. doi:10.1145/365181.365217. S2CID 31142279.
* — (2001). "What led to Notes on Structured Programming". E.W. Dijkstra Archive, Center for American History, University of Texas at Austin.