Topic: structured programming

topics > computer science > programming > Group: program control

program representation

experimental results on structured programming
goto statement
hierarchical structures
program execution
programming with data
stepwise refinement
structured editors
structured flow diagram
top-down vs. bottom-up design


Structured programming was quite a buzz word. Dijkstra started it in 1968 with a letter to Communications of the ACM, lambasting free form goto statements. Since then programming style has moved from unstructured gotos towards a few simple control structures: sequence, selection, and repetition. Design methods have also become structured, for instance Jackson matches program structure with data structure using simple, non-recursive tree structures. Trees are the best structure because each node has a single access path and corresponds to a language atom. Structuring improves program design and clarity, but for small programs, debugging and modification can be just as difficult.

Advantages -- A structured representation allows local understanding by avoiding tangles of sequential interrelationships. It encourages careful design, clearly delimitated detail design, and wide-spread sub-structuring. Structuring removes many simple errors (cbb 5/80)

Subtopic: structuring up

Quote: principles of structuring -- transparency of meaning and purpose, recursive application, narrow interface, manifestness of structure [»hoarCA_1974]
Quote: good programs need not be written top-down; even if the final result looks well structured [»greeTR_1980]
Quote: avoid and detect errors by orderly and logical programs; rewrite if necessary and provide documentation [»wilkMV_1951]
Quote: gives the natural set of possible flow-graphs; e.g., sequence, if..then..else, do..exitif..od, etc. [»martJJ12_1973]
Quote: if look at all possible flow-graphs, there is a large break in the minimal set required to represent a given set of flow-graphs [»martJJ12_1973, OK]

Subtopic: structured programming up

Quote: the vanilla framework for programming is separating data from control, structured programs, data types, and data structures [»hareD1_1992]
Quote: programs are not text; they are hierarchical compositions of computational structures; should be processed as such [»teitT9_1981]
Quote: if programs are structured as trees then always know the origin of any component [»jackMA_1975]
QuoteRef: wegnE11_1973 ;;Dijkstra 73: treats program as tree
QuoteRef: bensJP_1973 ;;good introduction to structured programming

Subtopic: procedural structuring up

Quote: design and implement a special-purpose programming language for every large-scale programming project; i.e., procedures and parameters [»hoarCA_1974]
Quote: programming is easy to understand if it is done in steps that preserve and represent the problem's structure [»baueFL_1976]
Quote: EDSAC promoted use of previously tested, nested subroutines with parameters; seldom used flow diagrams; like structured programming
Quote: subroutines for the assembly of repetitive programs; like structured programming, but seldom used [»wilkMV_1951]

Subtopic: block structure up

Quote: block structure limits the scope of a variable; accessible from elsewhere only as a parameter [»hoarCA_1974]
Quote: in traditional block-structured code, the block structure defines the control flow

Subtopic: data-structured programming up

Quote: Jackson design method: define data structures, this defines program structure, resolve structure clashes and backtracking [»jackMA_1977, OK]
Quote: Jackson's method gives a procedure for designing programs which is simple and self-evidently correct
Quote: Jackson's design method dissects the problem into parts and structures those parts into a solution [»jackMA_1975]
Quote: need to dissect the structure of problem data down to elementary data types, and the structure of the program down to primitive operations [»jackMA_1975]
Quote: the top-down designer creates tree structures; at a level with no shared components [»jackMA_1975]

Subtopic: structuring a program up

Quote: procedure for restructuring irregular algorithms with sequence, 'if', and 'while' [»kapoAA1_1978]
Quote: gives the algorithm for simplifying a program's structure [»kapoAA1_1978]
Quote: convert a structured program tree into a linear form by annotating it with symbols [»baxtCJ_1975]

Subtopic: problems with structured programs up

Quote: even though a program may appear graceful, it looks like a Rube Goldberg machine when executed by hand [»dennDC_1978a]
Quote: structured programming does not handle loop exits or selections continued to other selections [»symesDM_1975, OK]
Quote: several well-structured systems in the literature without error handling [»parnDL_1977]

Related Topics up

Group: program representation   (25 topics, 659 quotes)

Topic: experimental results on structured programming (11 items)
Topic: goto statement (25 items)
Topic: hierarchical structures (46 items)
Topic: program execution (8 items)
Topic: programming with data (16 items)
Topic: stepwise refinement (25 items)
Topic: structured editors (35 items)
Topic: structured flow diagram (36 items)
Topic: top-down vs. bottom-up design (30 items)
Topic: trees
(21 items)

Updated barberCB 3/06
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.