Edsger Wybe Dijkstra, a pioneer in the fields of computer science and computational physics, died of cancer on 6 August 2002 in Nuenen, the Netherlands.
Edsger was born on 11 May 1930 in the Dutch port of Rotterdam. His father was a chemist and his mother was a mathematician; her wise advice on mathematical method was much valued in his later career. He attended the University of Leiden; in 1951, he passed his candidate’s examination in mathematics and physics and, in 1956, his predoctoral examination in theoretical physics.
As a reward for examination success in 1951, his father sent him to a summer school on computing, organized by Maurice Wilkes in the Cambridge University Mathematical Laboratory. In March 1952, he took a part-time job at the Mathematical Centre (precursor of the Centre for Mathematics and Computer Science) in Amsterdam, where he was responsible for drafting an exceptionally precise and accurate reference manual for their new X1 computer. This work was the basis of his PhD dissertation “Communication With an Automatic Computer,” submitted under the supervision of Aad van Wijngaarden to the University of Amsterdam in 1959.
At first, Edsger resisted the pressure to become a programmer, because he missed in programming the element of professional and scientific rigor that had attracted him to physics. It was van Wijngaarden who inspired in him the lifelong goal of laying the scientific and mathematical foundations that would make programming a respectable discipline in the years to come. Edsger was sufficiently confident of his role as one of the founders of this emergent branch of knowledge that he began to keep his papers and correspondence in good order for future historians of science. His confidence was fully justified by his subsequent achievement, and his papers are now in store at the Charles Babbage Institute at the University of Minnesota. See also the Web site of the University of Texas at Austin (see http://www.cs.utexas.edu/users/EWD/symposiumProgram.pdf).
In 1957, he discovered the algorithm for the shortest path in a graph, which now bears his name. Edsger was a leading member of the international working group that designed ALGOL 60, and he wrote the first complete working compiler for the language. He invented the display technique of addressing global variables of a program; to this day, his technique makes recursive procedures work in the presence of higher-order procedure parameters.
In 1962, Edsger was appointed a full professor of mathematics at the Eindhoven University of Technology. There, he developed a time-shared operating system for the university’s computing service. Its elegant and influential hierarchical structure was reported to the first Symposium on Operating Systems Principles in 1967. From the beginning of the design, Edsger paid attention to the problems of concurrent execution and invented the semaphore as a means of synchronizing concurrent programs while avoiding race conditions. He took seriously the obligation to prove absence of deadlock in software and was depressed at what he viewed as the failure of IBM Corp to anticipate and avoid the problem in the architecture of the System 360 and in the early releases of its software.
His depression was deepened by his belief that his mathematical colleagues at Eindhoven had failed to recognize the academic status of computer science. He recovered his self-confidence by writing his famous “Notes on Structured Programming,” in which he distilled the essence of his unusually wide systems programming experience into a methodology that is now widely taught and practiced by millions of programmers. That distillation was published as a chapter in Structured Programming (Academic Press, 1972), written by Edsger, Ole-Johan Dahl, and this author.
In 1973, Edsger took an appointment as a research fellow by the Burroughs Corp, a computer manufacturer whose distinctive software strategy was based on ALGOL 60. That company farsightedly gave him the freedom to pursue his research wherever it led him. He invented and patented a number of systolic algorithms (“elephants from mosquitos”), intended for implementation in hardware. He also designed some of the first self-stabilizing algorithms, those that are guaranteed to return to working order no matter how their current state is perturbed. He developed a proof-of-correctness of a concurrent “on the fly” garbage collector, which collects free storage simultaneously with the program that uses it. These topics still inspire lively research, which drives innovation in product development. He also gave many weeklong programming methodology courses for Burroughs programmers.
At a meeting in 1973 of the International Federation for Information Processing working group on programming methodology, Edsger discovered the logical foundations for a mathematical theory of programming that supported all his more practical precepts. Eight months later, he submitted to the Communications of the Association for Computing Machinery a paper entitled “Guarded Commands, Nondeterminacy and a Calculus for the Derivation of Programs.” In 1976, he published his monograph A Discipline of Programming (Prentice-Hall), in which he defined the “weakest precondition” semantic model for the total correctness of a nondeterministic sequential programming language.
By 1984, Burroughs had merged with Univac, and Edsger decided to return to academic life as a professor and Schlumberger Centennial Chair in Computer Sciences at the University of Texas at Austin. There, he continued to practice his techniques for formal derivation of programs and algorithms, which he published in a series of handwritten manuscripts that were duplicated and distributed by post to his friends. His work was often developed in his weekly graduate seminar, the Austin (or Eindhoven) Tuesday Afternoon Club. He also applied his constructive techniques to the derivation of elegant mathematical proofs—for example, in geometry and number theory. This was the way he had hoped computer science would repay part of its great debt to mathematics.
Edsgers’s many elegant algorithms and his point of view about programming have had a subtle but extremely significant influence on the development of computational physics. Some of his algorithms, such as the one for finding the minimum spanning tree, are in daily use. Others, such as smoothsort, are used only occasionally, but to great effect. Probably more than any other individual, Edsger was responsible for giving the world of computational physics a solid notion of what an algorithm is, how a powerful algorithm can change the research landscape, and why the best algorithm might not be the first one that comes to mind.
Edsger was a perfectionist, pursuing the traditional academic ideals of knowledge for its own sake. The quality of his lectures was the result of meticulous preparation (and avoidance of overhead projectors), and his commitment to personal help for his students went far beyond the call of duty. He gave as much careful thought to details of his personal life as he did to the problems of science and made a conscious lifelong choice of his handwriting, his fountain pen, and his clothes. He decided that the best kind of hat was that worn in Texas, and his chosen form of necktie was the Texas clasp. He did not think it incongruous to wear these accessories above short cotton pants, ankle socks, and open sandals. In this attire, he would travel around the state parks of Texas in his recreational vehicle, which he affectionately, and wittily, named the “Touring Machine.”
He deplored the managerial, political, and commercial pressures that afflict the academic world today, and he did not hesitate to protest against them in his most trenchant style of writing and speaking. He was a master of epigram (now called a sound bite). When hard-pressed by criticism that his kind of research was not relevant to the problems of the real world, he replied by defining the problems of the real world as those that remain when you refuse to apply their known solutions.