Strukturierte Programmierung

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Strukturierte Programmierung ist ein programmiersprachenübergreifendes Programmierparadigma, das Anfang der 1970er Jahre auch aufgrund der Softwarekrise populär wurde. Es beinhaltet zum einen die baumartige Zerlegung eines Programms in Teilprogramme (Prozeduren) und enthält somit das Paradigma der prozeduralen Programmierung. Zudem verlangt die strukturierte Programmierung auf der untersten Ebene die Beschränkung auf lediglich drei Kontrollstrukturen:

  • Sequenz (hintereinander auszuführende Programmanweisungen)
  • Auswahl/Selektion (Verzweigung)
  • Wiederholung/Iteration (Schleifen)

Die bekannteste Konsequenz dieses Prinzips ist die Vermeidung oder – abhängig von der Programmiersprache – der eingeschränkte und standardisierte Einsatz der Sprunganweisung, des GOTO. Das Ergebnis der häufigen Verwendung dieser Anweisungen wird häufig abfällig als Spaghetticode bezeichnet.

Durch die konsequente Implementierung von Teilprogrammen und von Kontrollstrukturen vermeiden strukturierte Programme Codewiederholungen, was Vorteile bei der Suche von Programmfehlern mit sich bringt, die Programme kürzer und übersichtlicher macht und daher die Wartung von Software vereinfacht.

Wegbereiter[Bearbeiten]

Ein Wendepunkt hin zur strukturierten Programmierung war sicherlich der legendäre Aufsatz Go To Statement Considered Harmful von Edsger W. Dijkstra aus dem Jahr 1968.[1] Neben anderen war Niklaus Wirth mit dem Entwurf der Programmiersprache Pascal ein Wegbereiter der strukturierten Programmierung.

Wichtige Grundlagen legte auch Corrado Böhm 1966 mit seinem Studenten Giuseppe Jacopini (Satz von Böhm und Jacopini, in dem gezeigt wurde, dass Programme auf die oben erwähnten drei Kontrollstrukturen beschränkt werden können).[2]

Strukturierte Programmiersprachen[Bearbeiten]

Auch wenn strukturierte Programmierung prinzipiell in allen Sprachen möglich ist, sogar in Assembler, ist es sicherlich vorteilhaft, eine prozedurale Sprache zu verwenden. Mit wachsender Verbreitung der strukturierten Programmierung wurden auch Sprachen entwickelt, die Elemente enthalten, die die strukturierte Programmierung unterstützen, und solche weitestgehend eliminieren, die nicht diesem Programmierstil entsprechen. Folgende Programmiersprachen eignen sich unter anderem zur strukturierten Programmierung:

Heutiger Einsatz[Bearbeiten]

Strukturierte Programmierung ist heute in fast allen Bereichen, in denen professionell Software entwickelt wird, eine Selbstverständlichkeit. Die neueren Programmierparadigmen wie generative Programmierung, aspektorientierte Programmierung oder objektorientierte Programmierung bauen auf der strukturierten Programmierung auf und erweitern oder ergänzen diese.

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

Weblinks[Bearbeiten]

Fußnoten[Bearbeiten]

  1. Dijkstra: Go To Statement Considered Harmful. In: Communications of the ACM. 11, 3, 1968, S. 147–148
  2. Böhm, Jacopini Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules, Communications of the ACM, Band 9, 1966, S. 366–371