Edsger W. Dijkstra: Difference between revisions
m Blue link added |
|||
Line 138: | Line 138: | ||
{{Commons category|Edsger Wybe Dijkstra}} |
{{Commons category|Edsger Wybe Dijkstra}} |
||
{{wikiquote}} |
{{wikiquote}} |
||
* [http:// |
* [http://purl.umn.edu/107247 Oral history interview with Edsger W. Dijkstra], [[Charles Babbage Institute]] University of Minnesota, Minneapolis. Dijkstra recounts his early education and training as a theoretical physicist and as a 'programmer'. Dijkstra describes his work developing software, and his activities at several early information processing conferences. Dijkstra discusses the development of [[ALGOL 60]], [[Dijkstra's algorithm]], [[THE multiprogramming system]]. Comments on such figures as [[Adriaan van Wijngaarden|Aad van Wijngaarden]], [[Gerrit Blaauw]], [[F.L. Bauer]], [[Peter Naur]], [[Tony Hoare]], [[Niklaus Wirth]], [[Alan Perlis]]. Compares the origins of computing science in Europe and America. Oral history interview 2001. [http://cacm.acm.org/magazines/2010/8/96632-an-interview-with-edsger-w-dijkstra/fulltext Extract] published in Communications of the ACM Vol. 53 No. 8 (Aug. 2010): 41-47. doi: [http://dx.doi.org/10.1145/1787234.1787249 10.1145/1787234.1787249] |
||
* [http://www.cs.utexas.edu/users/EWD/ E. W. Dijkstra Archive] |
* [http://www.cs.utexas.edu/users/EWD/ E. W. Dijkstra Archive] |
||
* [http://purl.umn.edu/40969 Burroughs Corporation Records - Edsger W. Dijkstra Papers], [[Charles Babbage Institute]], University of Minnesota. Dijkstra worked as a research fellow with [[Burroughs Corporation]] beginning in 1973. |
* [http://purl.umn.edu/40969 Burroughs Corporation Records - Edsger W. Dijkstra Papers], [[Charles Babbage Institute]], University of Minnesota. Dijkstra worked as a research fellow with [[Burroughs Corporation]] beginning in 1973. |
Revision as of 20:27, 28 March 2012
Edsger Wybe Dijkstra | |
---|---|
Born | |
Died | August 6, 2002 | (aged 72)
Known for | Dijkstra's algorithm Structured programming THE multiprogramming system Semaphore |
Awards | Turing Award Association for Computing Machinery |
Scientific career | |
Fields | Computer science |
Institutions | Mathematisch Centrum Eindhoven University of Technology The University of Texas at Austin |
Doctoral advisor | Adriaan van Wijngaarden |
Doctoral students | Nico Habermann Martin Rem David Naumann Cornelis Hemerik Jan Tijmen Udding Johannes van de Snepscheut Antonetta van Gasteren |
Edsger Wybe Dijkstra (May 11, 1930 – August 6, 2002); Dutch pronunciation: [ˈɛtsxər ˈwibə ˈdɛɪkstra] ) was a Dutch computer scientist. He received the 1972 Turing Award for fundamental contributions to developing programming languages, and was the Schlumberger Centennial Chair of Computer Sciences at The University of Texas at Austin from 1984 until 2000.
Shortly before his death in 2002, 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 work
Born in Rotterdam, Dijkstra studied theoretical physics at Leiden University, but quickly realized he was more interested in computer science. Originally employed by the Mathematisch Centrum in Amsterdam, he held a professorship at the Eindhoven University of Technology, worked as a research fellow for Burroughs Corporation in the early 1980s, and later held the Schlumberger Centennial Chair in Computer Sciences at the University of Texas at Austin, in the United States. He retired in 2000.
Among his contributions to computer science are the shortest path algorithm, also known as Dijkstra's algorithm; Reverse Polish Notation and related Shunting yard algorithm; the THE multiprogramming system, an important early example of structuring a system as a set of layers; Banker's algorithm; and the semaphore construct for coordinating multiple processors and programs. Another concept due to 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.
While he had programmed extensively in machine code in the 1950s, he was known for his low opinion of the GOTO statement in computer programming, writing a paper in 1965, and culminating in the 1968 article "A Case against the GO TO Statement",[1] regarded as a major step towards the widespread deprecation of the GOTO statement and its effective replacement by structured control constructs, such as the while loop. This article was retitled by editor Niklaus Wirth to "Go To Statement Considered Harmful", which introduced the phrase "considered harmful" in computing. This methodology was also called structured programming, the title of his 1972 book, coauthored with C.A.R. Hoare and Ole-Johan Dahl. Dijkstra also strongly opposed the teaching of BASIC.[2]
Dijkstra was known to be a fan of ALGOL 60, and worked on the team that implemented the first compiler for that language. Dijkstra and Jaap Zonneveld, who collaborated on the compiler, agreed not to shave until the project was completed.[3] It was one of the first compilers supporting recursion.[4]
Dijkstra wrote two important papers in 1968, devoted to the structure of a multiprogramming operating system called THE, and to Co-operating Sequential Processes.
From the 1970s, Dijkstra's chief interest was formal verification. The prevailing opinion at the time was that one should first write a program and then provide a mathematical proof of correctness. Dijkstra objected noting that the resulting proofs are long and cumbersome, and that the proof gives no insight on how the program was developed. An alternative method is program derivation, to "develop proof and program hand in hand". One starts with a mathematical specification of what a program is supposed to do and applies mathematical transformations to the specification until it is turned into a program that can be executed. The resulting program is then known to be correct by construction. Much of Dijkstra's later work concerns ways to streamline mathematical argument. In a 2001 interview,[5] he stated a desire for "elegance", whereby the correct approach would be to process thoughts mentally, rather than attempt to render them until they are complete. The analogy he made was to contrast the compositional approaches of Mozart and Beethoven.
Dijkstra was one of the early pioneers in the field of distributed computing. In particular, his paper "Self-stabilizing Systems in Spite of Distributed Control" started the sub-field of self-stabilization.
Many of his opinions on computer science and programming have become widespread. For example, he is famed for coining the popular programming phrase "two or more, use a for," [citation needed] alluding to the rule of thumb that when you find yourself processing more than one instance of a data structure, it is time to consider encapsulating that logic inside a loop. He was the first to make the claim that programming is so inherently complex that, in order to manage it successfully, programmers need to harness every trick and abstraction possible. When expressing the abstract nature of computer science, he wrote
- The job [of operating or using a computer] was actually beyond the electronic technology of the day, and, as a result, the question of how to get and keep the physical equipment more or less in working condition became in the early days the all-overriding concern. As a result, the topic became —primarily in the USA— prematurely known as "computer science" —which, actually is like referring to surgery as "knife science"— and it was firmly implanted in people's minds that computing science is about machines and their peripheral equipment. Quod non [Latin: "Which is not true"].[6]
He died in Nuenen on August 6, 2002 after a long struggle with cancer.[7] The following year, the ACM (Association for Computing Machinery) PODC Influential Paper Award in distributed computing was renamed the Dijkstra Prize in his honour.
EWDs and writing by hand
Dijkstra was 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. Looking closely at himself he realized that if he wrote about things they would appreciate at the MC in Amsterdam his colleagues in Eindhoven would not understand; if he wrote about things they would like in Eindhoven, his former colleagues in Amsterdam would look down on him. He then decided to write only for himself, and in this way the EWDs were born. Dijkstra would distribute photocopies of a new EWD among his colleagues; as many recipients photocopied and forwarded their copy, the EWDs spread throughout the international computer science community. The topics were computer science and mathematics, and included trip reports, letters, and speeches. More than 1300 EWDs have since been scanned, with a growing number transcribed to facilitate search, and are available online at the Dijkstra archive of the University of Texas.[8]
One of Dijkstra's sidelines was serving as Chairman of the Board of the fictional 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.[9] 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.[10] A more successful effort was the Standard Proof for Pythagoras' Theorem, that replaced the more than 100 incompatible existing proofs.[11] Dijkstra described Mathematics Inc. as "the most exciting and most miserable business ever conceived".[9] EWD 443 (1974) describes his fictional company as having over 75 percent of the world's market share.[12][13]
Despite having invented much of the technology of software, Dijkstra eschewed the use of computers in his own work for many decades. Almost all EWDs appearing after 1972 were hand-written. When lecturing, he would write proofs in chalk on a blackboard rather than using overhead foils. 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.[14]
Awards and honors
Among Dijkstra's awards and honours are:[14]
- 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)[15]
- 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)
- Fellow of the Association for Computing Machinery (1994)[16]
- Honorary doctorate from the Athens University of Economics & Business, Greece (2001).
- Computer and Communications Prize (NEC Foundation), Japan (2002)
See also
- Dijkstra's algorithm
- Smoothsort
- Dining philosophers problem
- "The Cruelty of Really Teaching Computer Science"
- Semaphore
- Guarded Command Language and Predicate transformer semantics.
Footnotes
- ^ Dijkstra, Edsger W. A Case against the GO TO Statement (EWD-215) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
- ^ 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)
- ^ van Emden, Maarten (2008-05-06). "I remember Edsger Dijkstra (1930–2002)". Retrieved 2010-12-22.
- ^ Daylight, E. G. (2011). "Dijkstra's Rallying Cry for Generalization: the Advent of the Recursive Procedure, late 1950s - early 1960s". The Computer Journal. doi:10.1093/comjnl/bxr002.
{{cite journal}}
: Cite has empty unknown parameter:|month=
(help) - ^ http://video.google.com/videoplay?docid=-6873628658308030363
- ^ Dijkstra, Edsger W. On a cultural gap (EWD-924) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)Dijkstra, E.W. (1986). "On a cultural gap". The Mathematical Intelligencer. 8 (1): 48–52.
- ^ Goodwins, Rupert (2002-08-08). "Computer science pioneer Dijkstra dies". Retrieved 2010-12-22.
- ^ University of Texas online EWD archive.
- ^ a b Dijkstra, Edsger W. EWD-475 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
- ^ Dijkstra, Edsger W. EWD-539 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
- ^ Dijkstra, Edsger W. EWD-427 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
- ^ Dijkstra, Edsger W. EWD-443 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
- ^ Dijkstra, Edsger W. (1982). Selected Writings on Computing: A Personal Perspective. Berlin: Springer-Verlag. ISBN 9780387906522.
- ^ a b University of Texas, "In Memoriam Edsger Wybe Dijkstra."
- ^ "A. M. Turing Award". Association for Computing Machinery. Retrieved February 5, 2011.
{{cite web}}
: Check date values in:|accessdate=
(help) - ^ "ACM Fellows - D". Association for Computing Machinery. Retrieved February 15, 2011.
{{cite web}}
: Check date values in:|accessdate=
(help)
References
Writings by E.W. Dijkstra
- Dijkstra, E. W. (1968). "Letters to the editor: go to statement considered harmful". Communications of the ACM. 11 (3): 147–148. doi:10.1145/362929.362947. ISSN 0001-0782.
{{cite journal}}
: Unknown parameter|month=
ignored (help) (EWD215)
- Dijkstra, E. W. (1972). "The Humble Programmer". Communications of the ACM. 15 (10): 859–866. doi:10.1145/355604.361591.
{{cite journal}}
: Unknown parameter|month=
ignored (help) (EWD340) PDF, 1972 ACM Turing Award lecture
- Dijkstra, E. W. (1982). "How do we tell truths that might hurt?". SIGPLAN Notice. 17 (5): 13–15. doi:10.1145/947923.947924. ISSN 0362-1340.
{{cite journal}}
: Unknown parameter|month=
ignored (help) (EWD498)
- From My Life (EWD1166)
- Dijkstra, E.W. (August 1975), Guarded commands, nondeterminacy and formal derivation of program. Communications of the ACM, 18(8):453–457. [1]
- Dijkstra, E.W. (1976), A Discipline of Programming, Prentice-Hall Series in Automatic Computation, ISBN 0-13-215871-X — A systematic introduction to a version of the guarded command language with many worked examples
- Selected Writings on Computing: A Personal Perspective, Texts and Monographs in Computer Science, Springer-Verlag, 1982, ISBN 0-387-90652-5
- A Method of Programming, E.W. Dijkstra, W.H.J. Feijen, trsl. by J. Sterringa, Addison Wesley 1988, ISBN 0-201-17536-3
- E. W. Dijkstra and Carel S. Scholten (1990). Predicate Calculus and Program Semantics. Springer-Verlag ISBN 0-387-96957-8 — An abstract, formal treatment of Predicate transformer semantics
- O.-J. Dahl, Edsger W. Dijkstra, C. A. R. Hoare Structured Programming, Academic Press, London, 1972 ISBN 0-12-200550-3
- this volume includes an expanded version of the Notes on Structured Programming, including an extended example of using the structured approach to develop a backtracking algorithm to solve the 8 Queens problem.
- a pdf version of this book is available in the ACM Classic Books Series
Others about Dijkstra, eulogies
- Biography Digidome
- Edsger Wybe Dijkstra (1930–2002): A Portrait of a Genius (PDF) Obituary in Formal Aspects of Computing with a short biography
- How can we explain Edsger W. Dijkstra to those who didn't know him? by David Gries
- Dijkstra Eulogy by J Strother Moore
- In Memoriam Edsger Wybe Dijkstra by Mario Szegedy
- Photos of Edsger Dijkstra
- 1985 Interview with Edsger Dijkstra, which he considered the best of his life
External links
- Oral history interview with Edsger W. Dijkstra, Charles Babbage Institute University of Minnesota, Minneapolis. Dijkstra recounts his early education and training as a theoretical physicist and as a 'programmer'. Dijkstra describes his work developing software, and his activities at several early information processing conferences. Dijkstra discusses the development of ALGOL 60, Dijkstra's algorithm, THE multiprogramming system. Comments on such figures as Aad van Wijngaarden, Gerrit Blaauw, F.L. Bauer, Peter Naur, Tony Hoare, Niklaus Wirth, Alan Perlis. Compares the origins of computing science in Europe and America. Oral history interview 2001. Extract published in Communications of the ACM Vol. 53 No. 8 (Aug. 2010): 41-47. doi: 10.1145/1787234.1787249
- E. W. Dijkstra Archive
- Burroughs Corporation Records - Edsger W. Dijkstra Papers, Charles Babbage Institute, University of Minnesota. Dijkstra worked as a research fellow with Burroughs Corporation beginning in 1973.
- Noorderlicht: Discipline in Thought Video interview, 2001-04-10
- original here, only in Dutch, bandwidth options
- Edsger Dijkstra's Convocation Speech
- 1930 births
- 2002 deaths
- Computer pioneers
- Dutch computer scientists
- Dutch physicists
- Eindhoven University of Technology faculty
- Fellows of the Association for Computing Machinery
- Fellows of the British Computer Society
- Formal methods people
- Leiden University alumni
- Members of IFIP Working Group 2.1
- People from Rotterdam
- Programming language designers
- Programming language researchers
- Researchers in distributed computing
- Software engineers
- Software engineering researchers
- Turing Award laureates
- University of Texas at Austin faculty
- Dijkstra Prize laureates
- Cancer deaths in the Netherlands