Notes on Structured Programming (EWD249)
Markdown transcription of Edsger W. Dijkstra's Notes on Structured Programming (EWD249, August 1969; second edition April 1970), one file per page of the source PDF.
- Source PDF: https://pure.tue.nl/ws/files/2408738/252825.pdf (89 pages)
- Transcription:
pages/001.md…pages/089.md, one file per PDF page. - File number = PDF page order. Pages
001–003are the TU/e publication cover and front matter; the typescript itself begins atpages/003.md. - Printed page numbers appear in each file as the typescript's running header
(
EWD249 - N). The printed number is 5 lower than the file number (file040.md→EWD249 - 35).
Contents
| Section | Printed page | File |
|---|---|---|
| Table of contents | — | 004 |
| To my reader. | 0 | 005 |
| On our inability to do much. | 1 | 006 |
| On the reliability of mechanisms. | 4 | 009 |
| On our mental aids. | 8 | 013 |
| On enumeration. | 8 | 013 |
| On mathematical induction. | 9 | 014 |
| On abstraction. | 13 | 018 |
| An example of a correctness proof. | 15 | 020 |
| On the validity of proofs versus the validity of implementations. | 19 | 024 |
| On understanding programs. | 21 | 026 |
| On comparing programs. | 30 | 035 |
| A first example of step-wise program composition. | 35 | 040 |
| On program families. | 50 | 055 |
| On trading storage space for computation speed. | 53 | 058 |
| On a program model. | 57 | 062 |
| A second example of step-wise program composition. | 64 | 069 |
| On what we have achieved. | 75 | 080 |
| On grouping and sequencing. | 80 | 085 |
Notes on the transcription
- Text is transcribed faithfully from the page images; the author's original spelling, punctuation and typos are preserved rather than modernized.
- Typewritten programs, algorithms and mathematical displays are kept in fenced code blocks with their original indentation.
- Words underlined in the original running text are rendered as bold. Underlines inside fenced code blocks are not representable in Markdown and are therefore preserved only as plain text.
- Diagrams that cannot be reproduced as text are rendered as ASCII where simple, or described briefly.