Structured programming

related topics
{math, number, function}
{system, computer, user}
{theory, work, human}
{company, market, business}
{work, book, publish}
{line, north, south}
{@card@, make, design}
{law, state, case}

To many people, Edsger W. Dijkstra's letter to the Editor of Communications of the ACM, published in March 1968, marks the true beginning of structured programming. Structured programming can be seen as a subset or subdiscipline of imperative programming, one of the major programming paradigms. It is most famous for removing or reducing reliance on the GOTO statement. Edsger Dijkstra's subsequent article, "Go To Statement Considered Harmful" was instrumental in the trend towards structured programming. Description of the inverse relationship between a programmer's ability and the density of goto statements in his program is repeated.[1]

Historically, several different structuring techniques or methodologies have been developed for writing structured programs. The most common are:

The two latter meanings for the term "structured programming" are more common, and that is what this article will discuss. Years after Dijkstra (1969), object-oriented programming (OOP) was developed to handle very large or complex programs (see below: Object-oriented comparison).


Low-level structure Programming

At a low level, structured programs are often composed of simple, hierarchical program flow structures. These are sequence, selection, and repetition:

  • "Sequence" refers to an ordered execution of statements.
  • In "selection" one of a number of statements is executed depending on the state of the program. This is usually expressed with keywords such as if..then..else..endif, switch, or case.

Full article ▸

related documents
Object-oriented programming
Reference counting
Dylan (programming language)
Control flow
Busy beaver
Communication complexity
Abstraction (computer science)
Category theory
Exponential function
Semidirect product
Set (mathematics)
Riemannian manifold
Information theory
Metric space
P = NP problem
Dirac delta function
Exception handling
Taylor's theorem
Icon (programming language)
Extended Euclidean algorithm
Template (programming)
Vigenère cipher
Relational database
Finite set
Hausdorff dimension
Cholesky decomposition