Structured Programming
- The Fundamental Principle of Structured Programming is that at all
times and under all circumstances, the programmer must keep the
program within his intellectual grasp. The well-known
methods for achieving this
can be briefly summarized as follows: 1) top-down
design and construction,
2) limited control structures, and
3) limited scope of data structures.-----Tom Harbron
- A study of program structure has revealed that programs can differ
tremendously in their intellectual manageability. A number
of rules have been discovered, violations of which will either
seriously impair or totally destroy the intellectual manageability
of the program....I now suggest that we confine ourselves to the design
and implementation of intellectually manageable programs.-----E. Dijkstra
- The bald truth is that natural language is ill-suited for
writing specifications. As a corollary to this theorem,
the most concise and intellectually manageable form for the
specification of an algorithm is the algorithm itself.-----Tom Harbron
- How to structure data for intelligibility: limit the scope of variables, explicitly
declare all variables, use meaningful data names, and
use hierarchical data structures.
- Hierarchical systems seem to have a property that something
considered as an undivided entity on one level is considered
as a composite object on the next lowest level of greater
detail: as a result, the natural grain of space or time that
is applicable at each level decreases by an order of magnitude
when we shift our attention from one level to the next lower
one. We understand walls in terms of bricks, bricks in terms
of crystals, crystals in terms of molecules, etc.-----E. Dijkstra
- Reusable Software:
The good programmer writes software that can be reused,
even if he doesn't see a reuse immediately on the horizon.
His experience...assures him that someone from the next hallway,
reasonably soon, will be asking, "Do you have a module that...."
He also knows that writing reusably will force him to define
clean interfaces.-----D. Boundy