Dijkstra, Edsger W.
(1930–2002) Dutch
Computer Scientist
Edsger W. Dijkstra was born in Rotterdam, Netherlands, in 1930 into a scientific family (his mother was a math-ematician and his father was a chemist). He received an intensive and diverse intellectual training, studying Greek, Latin, several modern languages, biology, mathematics, and chemistry. While majoring in physics at the University of Leiden in 1951, he attended a summer school at Cambridge that kindled what soon became a major interest in pro-gramming. He continued this pursuit at the Mathematical Center in Amsterdam in 1952 while finishing studies for his physics degree. At the time there were no degrees in com-puter science; indeed, programming did not yet exist as an academic discipline. Like most other computers of the time, the Mathematical Center’s ARMAC was custom-built. With no high-level languages yet in use, programming required intimate familiarity with the machine’s architecture and low-level instructions. Dijkstra soon found that he thrived in such an environment.
By 1956, Dijkstra had discovered an algorithm for find-ing the shortest path between two points. He applied the algorithm to the practical problem of designing electrical circuits that used as little wire as possible, and generalized it into a procedure for traversing treelike data structures.
During the 1960s, Dijkstra began to explore the prob-lem of communication and resource-sharing within com-puters. He developed the idea of a semaphore. Like the railroad signaling device that allows only one train at a time to pass through a single section of track, the program-ming semaphore provides mutual exclusion, ensuring that two processes don’t try to access the same memory or other resource at the same time.
Another problem Dijkstra tackled involved the sequenc-ing of several processes that are accessing the same resources. He found ways to avoid a deadlock situation where one process had part of what it needed but was stuck because the process holding the other needed resource was in turn waiting for the first process to finish. His algorithms for allowing multiple processes (or processors) to take turns gaining access to memory or other resources would become fundamental for the design of new computing architectures.
During the 1970s, Dijkstra immigrated to the United States, where he became a research fellow at Burroughs, one of the major manufacturers of mainframe computers. Dur-ing this time he helped launch the “structured program-ming” movement. His paper “GO TO Considered Harmful” criticized the use of that unconditional “jump” instruction because it made programs hard to read and verify. The newer structured languages such as Pascal and C affirmed Dijkstra’s belief in avoiding or discouraging such haphazard program flow (see structured programming).
Dijkstra spent the last decades of his career as a pro-fessor of mathematics at the University of Texas at Aus-tin, where he held the Schlumberger Centennial Chair in Computer Science. Dijkstra had some unusual quirks for a computer scientist. His papers were handwritten with a fountain pen, and he did not even own a personal computer until late in life.
In 1972 Dijkstra won the Association for Computing Machinery’s Turing Award. After his death on August 6, 2002, in Nuenen, The Netherlands, the ACM renamed its award for papers in distributed computing as the Dijkstra Prize. Perhaps Dijkstra’s greatest testament, however, is found in the millions of lines of computer code that are better organized and easier to maintain because of the widespread adoption of structured programming.
No comments:
Post a Comment