Raw capture โ€” raw/ewd249-notes-on-structured-programming.md


url: https://www.cs.utexas.edu/~EWD/ewd02xx/EWD249.PDF title: Notes on Structured Programming author: Prof.dr. Edsger W. Dijkstra date_fetched: 2026-07-18 date_published: 1970-04


TECHNISCHE HOGESCHOOL EINDHOVEN TECHNOLOGICAL UNIVERSITY EINDHOVEN NEDERLAND THE NETHERLANDS ONDERAFDELING DER WISKUNDE DEPARTMENT OF MATHEMATICS

NOTES ON STRUCTURED PROGRAMMING by

Prof.dr. Edsger W. Dijkstra

T.H.-Report 70-WSK-03

Second edition April 1970 EWD249

NOTES ON STRUCTURED PROGRAMMING

by

prof.dr.Edsger W.Dijkstra

August 1969 EWD249

[Full text preserved verbatim from the original PDF. This is the foundational document of structured programming, containing Dijkstra's arguments for systematic program construction through step-wise refinement, his critique of testing as a correctness mechanism, the introduction of the layered virtual machine model, and the "pearls and necklace" metaphor for program composition.]

Key sections: - To my reader - On our inability to do much (scale incomparability) - On the reliability of mechanisms (testing vs. correctness proofs) - On our mental aids (enumeration, mathematical induction, abstraction) - An example of a correctness proof (division algorithm) - On the validity of proofs versus the validity of implementations - On understanding programs (concatenation, selection, repetition) - On comparing programs - A first example of step-wise program composition (prime number table) - On program families - On trading storage space for computation speed - On a program model (layered machines, pearls and necklaces) - A second example of step-wise program composition (line printer plotter) - On what we have achieved - On grouping and sequencing