Obituary: Edsger Dijkstra ; Doyen of the Theory and Practice of Computer Programming

Article excerpt

IN 1968 computer programming was in a state of crisis. Programs were hugely expensive to write and contained dozens, sometimes hundreds, of errors. Worse, programming did not scale up - big programs were proportionately even more costly and error-ridden than average-sized ones. Edsger Dijkstra was one of a small group of academics and industrial programmers who advocated a new programming style to improve the quality of programs. Dijkstra coined the phrase "structured programming" and during the 1970s this became the new programming orthodoxy.

Edsger Dijkstra was born in Rotterdam in 1930. His father, Douwe Dijkstra, was a distinguished chemist, and his mother, Brechtje Kluyver, a mathematician. In 1951 he graduated in mathematics and physics from the University of Leiden. He planned to follow this with a doctorate in theoretical physics. Recognising he needed to learn something about computers, he attended the 1951 Cambridge University summer school in programming, and was hooked. Against the advice of his academic advisors, he dropped physics and went on to obtain one of the first doctorates in computer science.

From 1952 he was a part-time scientific programmer at the Mathematisch Centrum, Amsterdam, becoming full-time in 1956. While there he produced one of the most enduring results in computer science, Dijkstra's Algorithm - a method of finding the shortest path through a network - now a staple of every undergraduate computer science textbook. It is said that he produced this result over coffee on a cafe terrace in Amsterdam, without pencil and paper. In 1960 he produced the world's first translator for the new programming language Algol 60, a tour de force that established his international reputation.

In 1962 Dijkstra was appointed Professor of Computer Science at Eindhoven University. During the early 1960s, computers grew rapidly in number, power, and size, precipitating the so-called software crisis. His most famous contribution to the programming debate was a letter to the editor of the Communications of the Association of Computing Machinery, published in March 1968, with the title "Go To Statement Considered Harmful".

Dijkstra reasoned that most programming errors were caused by the use of the "go to" command, which permitted unskilled programmers to produce "bird's nest" programs that were unreliable, and impossible to understand or debug. He argued for the replacement of the go-to statement by less error-prone commands that ordinary programmers could handle.

What gave his arguments particular force was that they were expressed with tremendous wit and panache, while being underpinned by mathematical logic and deep practical experience. He advocated structured programming, by which a computer task was broken down into a set of sub-tasks; these sub-tasks were then decomposed into a set of smaller tasks, and so on, until a manageable grain of detail was reached. …