Strukturert programmering

Strukturert programmering er en grunnleggende programmeringsparadigme som ligger til grunn for det meste av moderne programvareutvikling. Den innebærer at et program skal kunne fremstilles som en trestruktur av delprogrammer, og at ethvert program skal kunne skrives ved bruk av bare tre forskjellige typer anvisninger: sekvensielle anvisninger, valganvisninger (forgreninger) og gjentakelser (løkker og iterasjoner).

Den mest kjente konsekvensen av dette prinsippet er å unngå hoppanvisninger - i mange språk goto. Et program med mange slike anvisninger blir ofte nedsettende kalt spaghettikode. I mange moderne programmerinsspråk finnes det av samme grunn ingen hoppanvisning.

Historikk 
I mai 1966 viste Corrado Böhm og Giuseppe Jacopini i en artikkel at alle beregniningsfunksjoner som nevnt ovenfor kan implementeres med bare tre grunnleggende kontrollstrukturer:
 Sekvens - separate delfunksjoner blir utført etterhverandre
 Seleksjon - velg en av to delfunksjoner avhengig av et boolsk uttrykk
 Iterasjon - utfør en delfunksjon intil et boolsk uttrykk skifter verdi 
1968 publiserte Edsger Dijkstra artikkelen Go To Statement Considered Harmful, en pioner var også Niklaus Wirth med utviklingen av programmeringsspråket Pascal.

Strukturerte programmeringsspråk 

Til strukturert programmering bruker man et høynivåspråk. Slike programmeringsspråk har:
Et vokabular, altså et ordforråd med meget strenge regler for hva det enkelte ord kan brukes til
En grammatikk, som bestemmer hvordan vi kan sette sammen ord til en korrekt anvisning. 

Ved programmering er det svært viktig å kjenne både vokabularet og grammatikken. Det kan imidlertid definers nye ord etter bestemte regler. Kompilatoren som skal oversette programkode til maskinkode, vil kontrollere at programmet er riktig skrevet, og vil ikke kompilere dersom reglene ikke er fulgt fullt ut.

Litteratur 
 Ole-Johan Dahl, Edsger Dijkstra, Tony Hoare: Structured Programming. Academic Press, London 1972, ISBN 0-12-200550-3.

Referanser

Eksterne lenker 
 David R. Tribble: Go To Statement Considered Harmful: A Retrospective 

Programmering