Dahl, O.J., E.W. Dijkstra, and C.A.R. Hoare, Structured Programming, Academic Press, 1972. Includes the published version of Dijkstra’s “Notes on Structured Programming,” a highly influential essay on the challenges of composing large programs.
Dijkstra, Edsger W., Communication with an Automatic Computer, PhD thesis, University of Amsterdam, 1959. Addressed the problem of “real-time interrupts,” ubiquitous in the design of modern operating systems, and discussed buffering techniques for communications among devices whose speeds differed by several orders of magnitude.
Dijkstra, Edsger W., “A note on two problems in connection with graphs,” Numerische Mathematik1, 1959, pp. 83–89. Dijkstra formulated and solved the Shortest Path problem in 1956, but —because of the absence of journals dedicated to automatic computing— did not publish the result until 1959. In a recent communication concerning Dijkstra’s solution, Prof. Douglas McIlroy remarks on the modernity of the algorithm’s expression, noting that it “is given nondeterministically, which was distinctly unusual for the time.” He continues, “None of the thousands of retellings of the original nugget has been able to improve upon it.” This paper is a Citation Classic in the Web of Science database during the period 1945–2000.
Dijkstra, Edsger W., “Recursive programming,” Numerische Mathematik 2, 1960, pp. 312–318. Introduced the notion of a “stack” for translating recursive programs.
Dijkstra, Edsger W., “Go To statement considered harmful,” Communications of the ACM, Vol. 11, Num. 3, 1968, pp. 147–148. The Letter to the Editor that ignited the infamous “Go To” controversy. Submitted under the title “A case against the GO TO statement,” and retitled by the editor. The title template “X considered harmful” was for many years used in the titles of rants and diatribes.
Dijkstra, Edsger W., “The humble programmer,” Communications of the ACM, Vol. 15, Num. 10, 1972, pp. 859–866. This is his Turing Award lecture. Also available in his original note form from: http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD340.PDF.
A quote: Software seems to be different from many other products, where as a rule higher quality implies higher price. Those who want really reliable software will discover that they must find means of avoiding the majority of bugs to start with, and as a result the programming process will become cheaper. If you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to start with.”
Dijkstra, Edsger W., “Guarded commands, nondeterminacy, and the formal derivation of programs,” Communications of the ACM, Vol. 18, Num. 8, 1975, pp. 453–457. Also available as his original manuscript at: http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD472.PDF. A landmark in Dijkstra’s project to forge programming into an effective mathematical discipline, this article presents his methodology for developing programs and their correctness proofs hand in hand by deriving programs formally from their specifications.
Dijkstra, Edsger W., A Discipline of Programming, Prentice-Hall, 1976. Further development of the methodology introduced in the “Guarded Commands” paper, which yields programs which are correct by construction, with application to a number of programming problems.
Dijkstra, Edsger W. and C.S. Scholten, Predicate Calculus and Program Semantics, Texts and Monographs in Computer Science. Springer-Verlag, 1989. This monograph is the final published presentation of Dijkstra’s theory of predicate transformers for defining the semantics of programming-language statements as a basis for deriving programs by calculation from their formal specifications.
Dijkstra, Edsger W., “On the cruelty of really teaching computing science,” Communications of the ACM, Vol. 32, Num. 1, 1989, pp. 398–414. Also available in the form of his hand written notes at: http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF. The underlying assumption of this paper is that computers represent a radical novelty in our history. The first part makes much more precise what is meant in this context by the adjective ‘radical’ and then supplies ample evidence in support of that assumption. The second half pursues some of the scientific and educational consequences of the radical novelty that computers embody.
Dijkstra, Edsger W., “Under the spell of Leibniz’s Dream, EWD 1298”, Information Processing Letters, Vol. 77, Num. 2–4, 2001, pp. 53–61. Also available as his original notes (“EWD 1298”) at http://www.cs.utexas.edu/users/EWD/ewd12xx/EWD1298.PDF. Dijkstra’s address at the symposium marking his retirement gives an account of his career of nearly 50 years.
Feijen, W.H.J., A.J.M. van Gasteren, D. Gries, and Jayadev Misra (editors), Beauty is our Business: A Birthday Salute to Edsger W. Dijkstra, Texts and Monographs in Computer Science. Springer-Verlag, 1990.