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[1] 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,[2] 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.[3]

Litteratur

Referanser

  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 Go To Statement Considered Harmful. Communications of the ACM 11, 3 (1968), S. 147–148
  3. ^ Braadland Trond R, 2002, s 282-283

Eksterne lenker