Intelligent Quotes

Structured Programming

This book is a landmark collection of essays authored by Ole-Johan Dahl, Edsger W. Dijkstra, and Tony Hoare. It brings together foundational ideas that reshaped the way software systems were understood, designed, and implemented.

More about Tony Hoare →

Summary

The work is divided into three main parts, each reflecting the unique insights of its respective author.

1. Edsger W. Dijkstra: Notes on Structured Programming

This section is a profound reflection on the intellectual demands of programming and emphasizes rigorous reasoning, program correctness, and composability. Dijkstra argues that programmers must actively control complexity, particularly as programs scale in size. He introduces structured control flow constructs (e.g., sequences, conditionals, and loops) as essential tools to produce understandable and correct programs. A key contribution is the idea that code should be written in a way that makes correctness proofs possible, supported by examples like invariant maintenance and the use of mathematical induction. Dijkstra's narrative urges programmers to treat program construction as a disciplined mental activity, stressing clarity, reliability, and simplicity.

2. Tony Hoare: Notes on Data Structuring

Hoare shifts the focus to data structures and abstraction. He advocates for the use of abstract data types—sets, sequences, mappings—as aids in problem-solving. He explores various composite data structures such as arrays, unions, sequences, and recursive types, stressing that decisions about how to represent data should be postponed until necessary. The chapter also introduces criteria for selecting data representations based on problem requirements. His method promotes the separation of the logical view of data from its physical implementation, encouraging clean, modular thinking.

3. Ole-Johan Dahl and Tony Hoare: Hierarchical Program Structures

This part extends structured programming to object-oriented concepts. It discusses how programs can be built from hierarchies of modules or components—what would later influence object-oriented programming. Topics include object classes, coroutines, list structures, and program composition. The text demonstrates how top-down and bottom-up programming approaches can coexist, providing practical examples and theoretical insights into modularity and encapsulation. The goal is to manage complexity by decomposing programs into layers of abstraction, with clean interfaces and predictable behavior.

Summary

Together, the three parts present a cohesive philosophy: structured programming is not just about better syntax or tools, but about a disciplined approach to organizing computation and data. The book introduced core ideas—like modularity, abstraction, and verifiable correctness—that became foundational to modern software engineering. Even decades later, its influence persists in both academic thought and practical development methodologies.

Quotes from Structured Programming

“In the development of our understanding of complex phenomena, the most powerful tool available to the human intellect is abstraction.”

Tony Hoare (verified)

Details

Title: Structured Programming

Author: Dahl, O., Dijkstra, E., and Hoare, C.A.R.

Type: Book

Publisher: Academic Press

Publication time: June, 1972

Publication place: London and New York

ISBN: 0122005503

Link: https://dl.acm.org/doi/pdf/10.5555/1243380

People also read