Group: program representation
Topic: experimental results on structured programming
Topic: goto statement
Topic: hierarchical structures
Topic: program execution
Topic: programming with data
Topic: stepwise refinement
Topic: structured editors
Topic: structured flow diagram
Topic: top-down vs. bottom-up design
Topic: trees
| |
Summary
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
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
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
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
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
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
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
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
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)
|