Edsger W. Dijkstra

Dutch computer scientist (1930–2002)

Edsger W. Dijkstra

Dijkstra in 2002

Born| (1930-05-11)11 May 1930

Rotterdam, Netherlands

Died| 6 August 2002(2002-08-06) (aged 72)

Nuenen, Netherlands

Education| Leiden University (BS, MS)
University of Amsterdam (PhD)
Spouse| Ria C. Debets
Awards|

* Turing Award (1972)
* Harry H. Goode Memorial Award (1974)
* SIGCSE Outstanding Contribution (1989)
* ACM Fellow (1994)
* Dijkstra Prize (2002)

Scientific career
Fields|

* Computer science
* Theoretical computer science

Institutions|

* Mathematisch Centrum
* Eindhoven University of Technology
* Burroughs Corporation
* University of Texas at Austin

Thesis|  Communication with an Automatic Computer  (1959)
Doctoral advisor| Adriaan van Wijngaarden
Doctoral students|

* Nico Habermann
* Jan van de Snepscheut

Edsger Wybe Dijkstra (/ˈdaɪkstrə/ DYKE-strə; Dutch: [ˈɛtsxər ˈʋibə ˈdɛikstraː] ⓘ; 11 May 1930 – 6 August 2002) was a Dutch computer scientist, programmer, software engineer, mathematician, and science essayist.[1][2]

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

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

[edit]

### Early years

[edit]

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.[4][5]

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

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

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:[7]

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

> — Edsger Dijkstra, The Humble Programmer (EWD340), Communications of the ACM

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

In 1959, he received his PhD from the University of Amsterdam for a thesis entitled 'Communication with an Automatic Computer',[9] 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.[10]

### Mathematisch Centrum, Amsterdam

[edit]

From 1952 until 1962, Dijkstra worked at the Mathematisch Centrum in Amsterdam,[10] 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.[6] 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.[6] ALGOL 60 is known as a key advance in the rise of structured programming.

### Eindhoven University of Technology

[edit]

The Eindhoven University of Technology, located in Eindhoven in the south of the Netherlands, where Dijkstra was a professor of mathematics from 1962 to 1984.

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.[10] 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.[6] 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.[11]

### Burroughs Corporation

[edit]

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

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

### The University of Texas at Austin

[edit]

The University of Texas at Austin, where Dijkstra held the Schlumberger Centennial Chair in Computer Sciences from 1984 until 1999.

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

### Last years

[edit]

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

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.[3][12][13][14] He and his wife were survived by their three children: Marcus, Femke, and the computer scientist Rutger M. Dijkstra.[15]

## Personality

[edit]

Dijkstra at the blackboard during a conference at ETH Zurich in 1994. He once remarked, "A picture may be worth a thousand words, a formula is worth a thousand pictures."[16]

### Character

[edit]

> You can hardly blame M.I.T. for not taking notice of an obscure computer scientist in a small town in the Netherlands.

> — Dijkstra, said about himself in Nuenen in the mid-1960s.[17]

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.[10] Dijkstra chose this way of working to preserve his self-reliance.[18]

As a university professor for much of his life, Dijkstra saw teaching not just as a required activity but as a serious research endeavour.[6] His approach to teaching was unconventional.[19] 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.[10] 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.[6]

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

### Use of technology

[edit]

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.[6] Dijkstra never wrote his articles using a computer. He preferred to rely on his typewriter and later on his Montblanc pen.[10] 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.[6] Most of Dijkstra's publications were written by him alone. He never had a secretary and took care of all his correspondence alone.[10] 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.[10]

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.'"[20]

### Personal life

[edit]

Dijkstra led a modest lifestyle, to the point of being spartan.[10] 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.[10] 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.[6]

## Essays and other writing

[edit]

Throughout Dijkstra's career, his work was characterized by elegance and economy.[10] 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.[2]

### EWDs

[edit]

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

### Writing style

[edit]

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

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."[23] 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".[6] 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.[24]

### Recurring themes

[edit]

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.[25] 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.[26] A more successful effort was the Standard Proof for Pythagoras' Theorem, that replaced the more than 100 incompatible existing proofs.[27] Dijkstra described Mathematics Inc. as "the most exciting and most miserable business ever conceived".[25] EWD 443 (1974) describes his fictional company as having over 75% of the world's market share.[28][29]

## Legacy

[edit]

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

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.[31][32]

## Awards and honors

[edit]

Among Dijkstra's awards and honors are:[6]

* Member of the Royal Netherlands Academy of Arts and Sciences (1971)[33]
* Distinguished Fellow of the British Computer Society (1971)
* The Association for Computing Machinery's A.M. Turing Award (1972)[34]
* Harry H. Goode Memorial Award from the IEEE Computer Society (1974).[35]
* 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)[36]
* 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.[37]

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

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

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

[edit]

### Books

[edit]

* -- (1962). A Primer of ALGOL 60 Programming: Together with Report on the Algorithmic Language ALGOL 60. Academic Press. ISBN 978-0122162503. `{{cite book}}`: ISBN / Date incompatibility (help)
* --; 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

[edit]

This section may contain unverified or indiscriminate information in embedded lists. Please help clean up the lists by removing items or incorporating them into the text of the article. (November 2023)

|

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

## See also

[edit]

* Go To Statement Considered Harmful
* On the Cruelty of Really Teaching Computer Science
* List of pioneers in computer science

## References

[edit]

1. ^ "Edsger Dijkstra | Dutch computer scientist". 2 August 2023.
2. ^ a b Istrail (2008).
3. ^ a b Goodwins, Rupert (8 August 2002). "Computer science pioneer Dijkstra dies". Retrieved 22 December 2010.
4. ^ "Edsger Wybe Dijkstra". Stichting Digidome. 3 September 2003. Archived from the original on 6 December 2004.
5. ^ O'Connor, J. J.; Robertson, E. F. (July 2008). "Dijkstra biography". MacTutor. School of Mathematics and Statistics, University of St Andrews, Scotland. Archived from the original on 11 October 2013. Retrieved 18 January 2014.
6. ^ a b c d e f g h i j k l m n Faulkner, Larry R.; Durbin, John R. (19 August 2013). "In Memoriam: Edsger Wybe Dijkstra" (PDF). University of Texas at Austin. Retrieved 20 August 2015.
7. ^ a b Dijkstra, Edsger W. (1972). "The Humble Programmer". ACM Turing Lecture 1972. EWD340.
8. ^ James, Mike (1 May 2013). "Edsger Dijkstra — The Poetry of Programming". i-programmer.info. Retrieved 12 August 2015.
9. ^ Dijkstra, Edsger Wiebe (28 October 1959). "Communication with an automatic computer". Uitgeverij Excelsior/CWI. Retrieved 4 November 2022.
10. ^ a b c d e f g h i j k l m Apt, Krzysztof R. (2002). "Edsger Wybe Dijkstra (1930 - 2002): A portrait of a genius". Formal Aspects of Computing. 14 (2): 92–98\. arXiv:cs/0210001. doi:10.1007/s001650200029. S2CID 12482128.
11. ^ Silberschatz, Abraham; Peterson, James L. (1988). Operating System Concepts. p. 512.
12. ^ "World-renowned University of Texas at Austin computer scientist Edsger Dijkstra dies". UT News. 7 August 2002. Retrieved 4 August 2020.
13. ^ Dale, Nell; Lewis, John (31 December 2014). Computer Science Illuminated. Jones & Bartlett Publishers. p. 316\. ISBN 978-1-284-05592-4.
14. ^ "Edsger Dijkstra Passes Away". Dr. Dobb's Journal. 27: 14. 2002.
15. ^ Markoff, John (10 August 2002). "Edsger Dijkstra, 72, Physicist Who Shaped Computer Era". The New York Times. Retrieved 11 February 2024.
16. ^ Dijkstra, E.W. (July 1996), A first exploration of effective reasoning [EWD896]. (E.W. Dijkstra Archive, Center for American History, University of Texas at Austin)
17. ^ Shasha, Dennis; Lazere, Cathy: Out of Their Minds: The Lives and Discoveries of 15 Great Computer Scientists. (New York, NY: Springer, 1998, ISBN 978-0-387-98269-4), p. 64
18. ^ Apt, Krzysztof (28 September 2020). "The Man Who Carried Computer Science on His Shoulders". Inference. 5 (3).
19. ^ Irfan Hyder, Syed: Mathematics, Excellence and the Great Dijkstra (2013)[full citation needed]
20. ^ Dijkstra, Edsger W. On the cruelty of really teaching computer science (EWD-1036) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
21. ^ "The manuscripts of Edsger W. Dijkstra". E. W. Dijkstra Archive. University of Texas.
22. ^ Dijkstra, Edsger (10 April 2001). "Denken als Discipline". VPRO. Noorderlicht. Retrieved 21 June 2016.
23. ^ Dijkstra, Edsger W. The threats to computing science (EWD-898) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. "Alan M. Turing thought about criteria to settle the question of whether Machines Can Think, a question of which we now know that it is about as relevant as the question of whether Submarines Can Swim." (transcription), 1984
24. ^ Dijkstra, Edsger W. How do we tell truths that might hurt? (EWD-498) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
25. ^ a b Dijkstra, Edsger W. EWD-475 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
26. ^ Dijkstra, Edsger W. EWD-539 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
27. ^ Dijkstra, Edsger W. EWD-427 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
28. ^ Dijkstra, Edsger W. EWD-443 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
29. ^ Dijkstra, Edsger W (1982). Selected Writings on Computing: A Personal Perspective. Berlin: Springer-Verlag. ISBN 978-0-387-90652-2.
30. ^ "Edsger W. Dijkstra - A.M. Turing Award Laureate". amturing.acm.org. Retrieved 12 January 2023.
31. ^ Moy, John (April 1998). "OSPF Version 2". Ietf Datatracker. IETF. Retrieved 24 July 2022.
32. ^ "ISO/IEC 10589:2002". International Organization for Standardization. Retrieved 24 July 2022.
33. ^ "Edsger Wybe Dijkstra (1930–2002)". Royal Netherlands Academy of Arts and Sciences. Retrieved 17 July 2015.
34. ^ "A. M. Turing Award". Association for Computing Machinery. Archived from the original on 12 December 2009. Retrieved 5 February 2011.
35. ^ "Edsger W. Dijkstra 1974 Harry H. Goode Memorial Award Recipient". IEEE Computer Society. Retrieved 17 January 2014.
36. ^ "ACM Fellows – D". Association for Computing Machinery. Archived from the original on 24 January 2011. Retrieved 15 February 2011.
37. ^ "Roll of Distinguished Fellows". British Computer Society. Archived from the original on 4 March 2016. Retrieved 10 September 2014.
38. ^ Feijen, W.H.J.; van Gasteren, A.J.M.; Gries, D.; Misra, J., eds. (1990). Beauty is our Business. Monographs in Computer Science. New York: Springer Verlag. doi:10.1007/978-1-4612-4476-9. ISBN 978-1-4612-8792-6. S2CID 24379938.
39. ^ "Undergraduate Awards". Loyola University Chicago. Retrieved 29 April 2025.

## Citations

[edit]

* Istrail, Sorin (Fall–Winter 2008). "Storytelling About Lighthouses: Criticizing Professor Dijkstra Considered Harmless" (PDF). Conduit. Vol. 17, no. 2\. Brown University Department of Computer Science. pp. 10–17.

## External links

[edit]

Wikimedia Commons has media related to Edsger Wybe Dijkstra.

Wikiquote has quotations related to Edsger W. Dijkstra.

* "E.W. Dijkstra Archive". Center for American History, University of Texas at Austin.
* "Dijkstra's Rallying Cry for Generalization". A site devoted to Dijkstra’s works and thoughts, created and maintained by the historian of computing Edgar Graham Daylight.

* v
* t
* e

Edsger Dijkstra

Works|

* A Primer of ALGOL 60 Programming (book)
* Structured Programming (book)
* A Discipline of Programming (book)
* A Method of Programming (book)
* Predicate Calculus and Program Semantics (book)
* Selected Writings on Computing: A Personal Perspective (book)
* A Note on Two Problems in Connexion with Graphs
* Cooperating Sequential Processes
* Solution of a Problem in Concurrent Programming Control
* The Structure of the 'THE'-Multiprogramming System
* Go To Statement Considered Harmful
* Notes on Structured Programming
* The Humble Programmer
* Programming Considered as a Human Activity
* How Do We Tell Truths That Might Hurt?
* On the Role of Scientific Thought
* Self-stabilizing Systems in Spite of Distributed Control
* On the Cruelty of Really Teaching Computer Science
* Selected papers
* EWD manuscripts

Main research
areas|

* Theoretical computing science
* Software engineering
* Systems science
* Algorithm design (Dijkstra's algorithm)
* Concurrent computing
* Distributed computing
* Formal methods
* Programming methodology
* Programming language research
* Program design and development
* Software architecture
* Philosophy of computer programming and computing science

Related
people|

* Shlomi Dolev
* Per Brinch Hansen
* Tony Hoare
* Ole-Johan Dahl
* Leslie Lamport
* David Parnas
* Jaap Zonneveld
* Carel S. Scholten
* Adriaan van Wijngaarden
* Niklaus Wirth

* Wikiquote

* v
* t
* e

Timelines of computing

Computing|

* Before 1950
* 1950–1979
* 1980s
* 1990s
* 2000s
* 2010s
* 2020s
* Scientific
* Women in computing

Computer
science|

* Algorithms
* Artificial intelligence
* Binary prefixes
* Cryptography
* Machine learning
* Quantum computing and communication

Software|

* Free and open-source software
* Hypertext technology
* Operating systems
* DOS family
* Windows
* Linux
* Programming languages
* Virtualization development
* Malware

Internet|

* Internet conflicts
* Web browsers
* Web search engines

Notable
people|

* Kathleen Antonelli
* John Vincent Atanasoff
* Charles Babbage
* John Backus
* Jean Bartik
* George Boole
* Vint Cerf
* John Cocke
* Stephen Cook
* Edsger W. Dijkstra
* J. Presper Eckert
* Douglas Engelbart
* Adele Goldstine
* Lois Haibt
* Betty Holberton
* Margaret Hamilton
* Grace Hopper
* David A. Huffman
* Bob Kahn
* Brian Kernighan
* Andrew Koenig
* Semyon Korsakov
* Nancy Leveson
* Ada Lovelace
* Alan Kay
* Donald Knuth
* Joseph Kruskal
* Douglas McIlroy
* Marlyn Meltzer
* John von Neumann
* Klára Dán von Neumann
* Dennis Ritchie
* Guido van Rossum
* Claude Shannon
* Frances Spence
* Bjarne Stroustrup
* Ruth Teitelbaum
* Ken Thompson
* Linus Torvalds
* Alan Turing
* Paul Vixie
* Larry Wall
* Stephen Wolfram
* Niklaus Wirth
* Steve Wozniak
* Konrad Zuse

* v
* t
* e

Concurrent computing

General|

* Concurrency
* Concurrency control
* Concurrent data structures
* Concurrent hash tables
* Concurrent users
* Indeterminacy
* Linearizability

Process calculi|

* CSP
* CCS
* ACP
* LOTOS
* π-calculus
* Ambient calculus
* API-Calculus
* PEPA
* Join-calculus

Classic problems|

* ABA problem
* Cigarette smokers problem
* Deadlock
* Dining philosophers problem
* Producer–consumer problem
* Race condition
* Readers–writers problem
* Sleeping barber problem

* Category: Concurrent computing

* v
* t
* e

Software engineering

Fields|

* Computer programming
* DevOps
* Empirical software engineering
* Experimental software engineering
* Formal methods
* Requirements engineering
* Search-based software engineering
* Site reliability engineering
* Social software engineering
* Software deployment
* Software design
* Software maintenance
* Software testing
* Systems analysis

Concepts|

* Abstraction
* CI/CD
* Compatibility
* Backward compatibility
* Compatibility layer
* Compatibility mode
* Forward compatibility
* Software incompatibility
* Component-based software engineering
* Data modeling
* Enterprise architecture
* Functional specification
* Modeling language
* Programming paradigm
* Software
* Software archaeology
* Software architecture
* Software configuration management
* Software development process/methodology
* Software quality
* Software quality assurance
* Software system
* Software verification and validation
* Structured analysis
* Essential analysis

Orientations|

* Agile
* Aspect-oriented
* Object orientation
* Ontology
* SDLC
* Service orientation

Models|

| Developmental|

* Agile
* EUP
* Executable UML
* Incremental model
* Iterative model
* Prototype model
* RAD
* Scrum
* Spiral model
* UP
* V-model
* Waterfall model
* XP
* Model-driven engineering
* Round-trip engineering

|

Other|

* CMMI
* Data model
* ER model
* Function model
* Information model
* Metamodeling
* Object model
* SPICE
* Systems model
* View model

Languages|

* IDEF
* SysML
* UML
* USL

Related fields|

* Computer engineering
* Computer science
* Information science
* Project management
* Risk management
* Systems engineering

* Category
* Commons

* v
* t
* e

Computer science

Note: This template roughly follows the 2012 ACM Computing Classification System.

Hardware|

* Printed circuit board
* Peripheral
* Integrated circuit
* Very Large Scale Integration
* Systems on Chip (SoCs)
* Energy consumption (Green computing)
* Electronic design automation
* Hardware acceleration
* Processor
* Size / Form

Computer systems organization|

* Computer architecture
* Computational complexity
* Dependability
* Embedded system
* Real-time computing

Networks|

* Network architecture
* Network protocol
* Network components
* Network scheduler
* Network performance evaluation
* Network service

Software organization|

* Interpreter
* Middleware
* Virtual machine
* Operating system
* Software quality

Software notations and tools|

* Programming paradigm
* Programming language
* Compiler
* Domain-specific language
* Modeling language
* Software framework
* Integrated development environment
* Software configuration management
* Software library
* Software repository

Software development|

* Control variable
* Software development process
* Requirements analysis
* Software design
* Software construction
* Software deployment
* Software engineering
* Software maintenance
* Programming team
* Open-source model

Theory of computation|

* Model of computation
* Stochastic
* Formal language
* Automata theory
* Computability theory
* Computational complexity theory
* Logic
* Semantics

Algorithms|

* Algorithm design
* Analysis of algorithms
* Algorithmic efficiency
* Randomized algorithm
* Computational geometry

Mathematics of computing|

* Discrete mathematics
* Probability
* Statistics
* Mathematical software
* Information theory
* Mathematical analysis
* Numerical analysis
* Theoretical computer science

Information systems|

* Database management system
* Information storage systems
* Enterprise information system
* Social information systems
* Geographic information system
* Decision support system
* Process control system
* Multimedia information system
* Data mining
* Digital library
* Computing platform
* Digital marketing
* World Wide Web
* Information retrieval

Security|

* Cryptography
* Formal methods
* Security hacker
* Security services
* Intrusion detection system
* Hardware security
* Network security
* Information security
* Application security

Human–computer interaction|

* Interaction design
* Augmented reality
* Virtual reality
* Social computing
* Ubiquitous computing
* Visualization
* Accessibility

Concurrency|

* Concurrent computing
* Parallel computing
* Distributed computing
* Multithreading
* Multiprocessing

Artificial intelligence|

* Natural language processing
* Knowledge representation and reasoning
* Computer vision
* Automated planning and scheduling
* Search methodology
* Control method
* Philosophy of artificial intelligence
* Distributed artificial intelligence

Machine learning|

* Supervised learning
* Unsupervised learning
* Reinforcement learning
* Multi-task learning
* Cross-validation

Graphics|

* Animation
* Rendering
* Photograph manipulation
* Graphics processing unit
* Image compression
* Solid modeling

Applied computing|

* Quantum Computing
* E-commerce
* Enterprise software
* Computational mathematics
* Computational physics
* Computational chemistry
* Computational biology
* Computational social science
* Computational engineering
* Differentiable computing
* Computational healthcare
* Digital art
* Electronic publishing
* Cyberwarfare
* Electronic voting
* Video games
* Word processing
* Operations research
* Educational technology
* Document management

* Category
* Outline
* Glossaries

* v
* t
* e

ALGOL

Implementations|

| Technical
standards|

* ALGOL 58
* ALGOL 60
* ALGOL 68

|

Dialects|

* ABC ALGOL
* ALCOR
* ALGO
* ALGOL 68C
* ALGOL 68-R
* ALGOL 68RS (ELLA)
* ALGOL 68S
* ALGOL N
* ALGOL W
* ALGOL X
* Atlas Autocode (Edinburgh IMP)
* Burroughs ALGOL
* CORAL 66
* Dartmouth ALGOL 30
* DASK ALGOL
* DG/L
* Elliott ALGOL
* Executive Systems Problem Oriented Language (ESPOL) → New Executive Programming Language (NEWP)
* FLACC
* IMP
* JOVIAL
* Kidsgrove Algol
* MAD
* Mary
* NELIAC
* RTL/2
* S-algol, PS-algol, Napier88
* Simula
* Small Machine ALGOL Like Language (SMALL)
* SMIL ALGOL

Formalisms|

* Jensen's device
* Van Wijngaarden grammar

Community|

| Organizations|

| Professional
associations|

* ALCOR Group
* Association for Computing Machinery (ACM)
* BSI Group
* Euro-Asian Council for Standardization, Metrology and Certification (EASC)
* International Federation for Information Processing (IFIP) IFIP Working Group 2.1
* Society of Applied Mathematics and Mechanics (GAMM)

|

Business|

* Burroughs Corporation
* Elliott Brothers
* Regnecentralen

Education|

* Case Institute of Technology
* University of Edinburgh
* University of St Andrews
* Manchester University
* Massachusetts Institute of Technology (MIT)

Government|

* Royal Radar Establishment (RRE)

People|

| ALGOL 58|

* John Backus
* Friedrich L. Bauer
* Hermann Bottenbruch
* Charles Katz
* Alan Perlis
* Heinz Rutishauser
* Klaus Samelson
* Joseph Henry Wegstein

MAD|

* Bruce Arden
* Bernard Galler
* Robert M. Graham

ALGOL 60|

* Backus^
* Roland Carl Backhouse
* Bauer^
* Richard Bird
* Stephen R. Bourne
* Edsger W. Dijkstra
* Andrey Ershov
* Robert W. Floyd
* Jeremy Gibbons
* Julien Green
* David Gries
* Eric Hehner
* Tony Hoare
* Jørn Jensen
* Katz^
* Peter Landin
* Tom Maibaum
* Conor McBride
* John McCarthy
* Carroll Morgan
* Peter Naur
* Maurice Nivat
* John E. L. Peck
* Perlis^
* Brian Randell
* Rutishauser^
* Samelson^
* Jacob T. Schwartz
* Micha Sharir
* David Turner
* Bernard Vauquois
* Eiiti Wada
* Wegstein^
* Adriaan van Wijngaarden
* Mike Woodger

Simula|

* Ole-Johan Dahl
* Kristen Nygaard

ALGOL 68|

* Bauer^
* Susan G. Bond
* Bourne^
* Robert Dewar
* Dijkstra^
* Gerhard Goos
* Michael Guy
* Hoare^
* Cornelis H. A. Koster
* Peter Landin
* Charles H. Lindsey
* Barry J. Mailloux
* McCarthy^
* Lambert Meertens
* Naur^
* Peck^
* Willem van der Poel
* Randell^
* Douglas T. Ross
* Samelson^
* Michel Sintzoff
* van Wijngaarden^
* Niklaus Wirth
* Woodger^
* Philip Woodward
* Nobuo Yoneda

* Hal Abelson
* John Barnes
* Tony Brooker
* Ron Morrison
* Peter O'Hearn
* John C. Reynolds

* ALGOL Bulletin

Comparison|

* ALGOL 58 influence on ALGOL 60
* ALGOL 68 to other languages

* ^ = full name and link in prior ALGOL version above
Category: ALGOL Category: ALGOL 60

* v
* t
* e

A. M. Turing Award laureates

* Alan Perlis (1966)
* Maurice Wilkes (1967)
* Richard Hamming (1968)
* Marvin Minsky (1969)
* James H. Wilkinson (1970)
* John McCarthy (1971)
* Edsger W. Dijkstra (1972)
* Charles Bachman (1973)
* Donald Knuth (1974)
* Allen Newell / Herbert A. Simon (1975)
* Michael O. Rabin / Dana Scott (1976)
* John Backus (1977)
* Robert W. Floyd (1978)
* Kenneth E. Iverson (1979)
* Tony Hoare (1980)
* Edgar F. Codd (1981)
* Stephen Cook (1982)
* Dennis Ritchie / Ken Thompson (1983)
* Niklaus Wirth (1984)
* Richard Karp (1985)
* John Hopcroft / Robert Tarjan (1986)
* John Cocke (1987)
* Ivan Sutherland (1988)
* William Kahan (1989)
* Fernando J. Corbató (1990)
* Robin Milner (1991)
* Butler Lampson (1992)
* Juris Hartmanis / Richard E. Stearns (1993)
* Edward Feigenbaum / Raj Reddy (1994)
* Manuel Blum (1995)
* Amir Pnueli (1996)
* Douglas Engelbart (1997)
* Jim Gray (1998)
* Fred Brooks (1999)
* Andrew Yao (2000)
* Ole-Johan Dahl / Kristen Nygaard (2001)
* Leonard Adleman / Ron Rivest / Adi Shamir (2002)
* Alan Kay (2003)
* Vint Cerf / Bob Kahn (2004)
* Peter Naur (2005)
* Frances Allen (2006)
* Edmund M. Clarke / E. Allen Emerson / Joseph Sifakis (2007)
* Barbara Liskov (2008)
* Charles P. Thacker (2009)
* Leslie Valiant (2010)
* Judea Pearl (2011)
* Shafi Goldwasser / Silvio Micali (2012)
* Leslie Lamport (2013)
* Michael Stonebraker (2014)
* Whitfield Diffie / Martin Hellman (2015)
* Tim Berners-Lee (2016)
* John L. Hennessy / David Patterson (2017)
* Yoshua Bengio / Geoffrey Hinton / Yann LeCun (2018)
* Ed Catmull / Pat Hanrahan (2019)
* Alfred Aho / Jeffrey Ullman (2020)
* Jack Dongarra (2021)
* Robert Metcalfe (2022)
* Avi Wigderson (2023)
* Andrew Barto / Richard S. Sutton (2024)

Authority control databases

International|

* ISNI
* VIAF
* FAST
* WorldCat

National|

* Germany
* United States
* France
* BnF data
* Japan
* Australia
* Czech Republic
* Netherlands
* Norway
* Latvia
* Croatia
* Sweden
* Poland
* Israel
* Belgium

Academics|

* CiNii
* Mathematics Genealogy Project
* Association for Computing Machinery
* Scopus
* zbMATH
* DBLP
* MathSciNet

People|

* Netherlands
* Trove
* DDB

Other|

* IdRef
* SNAC

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template