Struktureret programmering

Struktureret programmering er programmering uden at anvende eksplicitte GOTO-sætninger. I stedet anvender man kun de strukturerede kontrol-mekanismer, som det anvendte programmeringssprog tilbyder, for at undgå de problemer, som ustruktureret spaghettikode kan medføre. I mange moderne programmeringssprog er ustruktureret programmering umuligt, ved at det helt enkelt ikke er muligt at anvende GOTO-sætninger.

Historie

redigér

Det teoretiske grundlag for struktureret programmering blev lagt i slutningen af 1960-erne med en sætning[1] af Corrado Böhm og Giuseppe Jacopini, hvor de viste, at alle beregningsfunktioner kan implementeres ved anvendelse af kun tre grundlæggende kontrolstrukturer:

  1. Sekvens
    Udfør først en delfunktion og derefter en anden delfunktion.
  2. Selektion
    Udfør en af to delfunktioner afhængig af værdien af en sandhedsvariabel.
  3. Iteration
    Udfør en delfunktion indtil en sandhedsvariabel er sand.

Artiklen viste også, hvordan et ustruktureret flow-skema kunne omformes til et struktureret skema med samme funktion. Edsger Dijkstras berømte brev, "Go To Statement Considered Harmful" fra 1968,[2] blev sidenhen starten til en debat om, hvorvidt et strengt struktureret program efter Böhm og Jacopinis principper var anvendelig for realistiske virkelige problemstillinger.

Efter vigtige praktiske tillæg til de oprindelige tre mekanismer i starten af 1970'erne, f.eks. i form af en kontrolleret afbrydelse af en iteration, vandt ideerne om struktureret programmering større accept, og de blev det dominerende programmeringsparadigme i 1970'erne og 1980'erne.

Fodnoter

redigér
  1. ^ Böhm, Corrado; and Giuseppe Jacopini (May 1966). "Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules". Communications of the ACM 9 (5)
  2. ^ Dijkstra, Edsger (1968). "Go To Statement Considered Harmful". Communications of the ACM 3
Spire
Denne artikel om datalogi eller et datalogi-relateret emne er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.