Edsger W. Dijkstra (1930–2002)
Dutch computer scientist. Won the Turing Award in 1972 for “fundamental contributions to programming as a high, intellectual challenge.” Famous for his sharp opinions, his refusal to use a computer to write his papers (the “EWDs” are handwritten manuscripts), and a long line of work that pushed programming toward being a mathematical discipline.
Relevance to CS 421
- Predicate transformers and the weakest-precondition calculus — Dijkstra reframed program correctness as computing a precondition from a postcondition, rather than guessing and checking.
- Guarded commands — a small imperative language in which statements may fail, and the language is explicitly nondeterministic. We use the spirit of this when we talk about Hoare Semantics.
- Structured programming — the argument that
gotomakes programs hard to reason about because it breaks the correspondence between program text and program execution.
Why I think he matters here
Dijkstra is the strongest voice for the idea that programs are mathematical objects, and programming is a discipline of reasoning, not of typing. Most of what we do in the back half of the course — types, semantics, proof rules — only makes sense if you take that idea seriously.
Further reading
- The EWD archive — every manuscript he ever wrote, scanned. Start with EWD 1036 (“On the cruelty of really teaching computing science”) for flavor.
- Go To Statement Considered Harmful (1968) — three pages, very readable.
- A Discipline of Programming (1976) — the book-length treatment of the weakest-precondition calculus.