Strukturerad programmering

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Strukturerad programmering är programmering utan att använda explicita GOTO-satser. Istället använder man endast de strukturerade kontrollflödes-mekanismerna som det använda programspråket erbjuder. Därmed undviks de problem som ostrukturerad spagettikod leder till. Många moderna programspråk omöjliggör ostrukturerad programmering genom att helt enkelt inte erbjuda någon explict GOTO-sats.

Historia

Den teoretiska grunden för strukturerad programmering lades i slutet av 1960-talet med ett teorem[1] av Corrado Böhm och Giuseppe Jacopini där de visade att alla beräkningsbara funktioner kan implementeras med användning av endast tre grundläggande kontrollstrukturer:

  1. utför först en delfunktion och därefter en annan delfunktion. (sekvens)
  2. utför en av två delfunktioner beroende på värdet av en boolesk variabel. (selection)
  3. utför en delfunktion tills en boolesk variabel är sann. (iteration)

Artikeln visad också hur ett godtyckligt, ostrukturerat, flödesschema kunde omformas till ett strukturerat schema med samma funktion. Edsger Dijkstra's berömda brev, "Go To Statement Considered Harmful" 1968[2] blev sedan början till en debatt om huruvida strikt strukturerade program enligt Böhm och Jacopinis principer var användbara för realistiska verkliga problem.

Efter viktiga praktiska tillägg till de ursprungliga tre mekanismerna under början av 1970-talet, t.ex. i form av kontrollerade uthopp ur iterationer, accepterades idéerna om strukturerad programmering allt mer och de kom att bli den dominerande paradigmen för programmering under 1970- och 1980-talet.

Referenser

  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


Personliga verktyg