Notes on Structured Programming.¶
Dijkstra, E. W. (1972). Notes on Structured Programming. Structured Programming.
Cited by¶
2 citations across 2 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Falsifiability
- Software engineering: Testing can reveal the presence of bugs but never their absence (Dijkstra's dictum); one failing case refutes "the code is correct," while any number of passing cases only corroborates it.
This sourceSource of the dictum, Sec. 3 ('On the Reliability of Mechanisms'): 'Program testing can be used to show the presence of bugs, but never to show their absence!' - one failing case refutes 'the code is correct' while passing cases only corroborate.
Supported in partVerified against the work's full text
Dijkstra's text states that "Program testing can be used to show the presence of bugs, but never to show" their absence. The asymmetry is what the sentence rests on: a failing case exhibits a bug, while no accumulation of passing cases can exhibit absence, so passing tests corroborate correctness without establishing it. The work states the asymmetry alone; the sentence's further formulation, that one failing case refutes a claim of correctness, is an inference drawn from it rather than the work's own wording.
“Program testing can be used to show the presence of bugs, but never to show”
- Software engineering: Testing can reveal the presence of bugs but never their absence (Dijkstra's dictum); one failing case refutes "the code is correct," while any number of passing cases only corroborates it.
- Refinement
- This distributes complexity across multiple manageable cycles rather than requiring upfront omniscience, the discipline Dijkstra (1972) advocates in his Notes on Structured Programming as the foundation for managing program complexity.
This sourceIn O.-J. Dahl, E. W. Dijkstra, & C. A. R. Hoare, Structured Programming (pp. 1–82). Academic Press. Argues that intellectually manageable programs are built by hierarchical decomposition and stepwise refinement, distributing total complexity across many small, locally verifiable steps.
SupportedVerified against the work's full text
Dijkstra's EWD 249 builds programs one decision at a time because the programmer cannot decide all at once, framing programming as organizing complexity.
“Giving full recognition to the fact that the poor programmer cannot decide all at once, we succeeded to a large extent in building up this program one decision at a time”
- This distributes complexity across multiple manageable cycles rather than requiring upfront omniscience, the discipline Dijkstra (1972) advocates in his Notes on Structured Programming as the foundation for managing program complexity.
Verification¶
Does it exist? Not checked yet. This entry carries no identifier to resolve. It was extracted from the citation as written in the article, normalized, and deduplicated against the rest of the registry.
Does it back the claim? Read against the text for 2 of 2 citations: 1 supported, 1 supported in part. Each verdict is shown under its citation below, with what in the work backs the sentence.
Support is checked per citation rather than per work — the same source can be cited soundly in one article and wrongly in another. Per-citation recording began recently, so a citation with no recorded check is a gap in the record rather than evidence it went unchecked.
See how references were verified.
Registry ID ref:d166c33e2443 · see in the full table