Strukturierte Programmierung
Strukturierte Programmierung ist ein programmiersprachenübergreifendes Programmierparadigma, aus den 1960er Jahren, also noch vor der Softwarekrise. 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 mit lokaler Sichtbarkeit von Identifikatoren und 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.
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.
Wegbereiter
[Bearbeiten | Quelltext bearbeiten]Ein Wendepunkt hin zur strukturierten Programmierung war eine Veröffentlichung von Corrado Böhm und seinem Studenten Giuseppe Jacopini aus dem Jahr 1966,[1] die im Satz von Böhm und Jacopini zeigten, dass Programme auf die oben erwähnten drei Kontrollstrukturen beschränkt werden können, sowie sicherlich auch der legendäre Aufsatz Go To Statement Considered Harmful von Edsger W. Dijkstra aus dem Jahr 1968.[2] Neben anderen war Niklaus Wirth mit dem Entwurf der Programmiersprache Pascal ein Wegbereiter der strukturierten Programmierung.
Strukturierte Programmiersprachen
[Bearbeiten | Quelltext 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 eliminiert, welche nicht diesem Programmierstil entsprechen. Unter anderem folgende Programmiersprachen unterstützen strukturierte Programmierung:
- Ada
- Algol
- C und C++
- C#
- COBOL (ab COBOL 85)
- Fortran (ab Fortran 77)
- Java
- Pascal, Modula-2, Oberon und Component Pascal
- Python
- Visual Basic
- Go (Programmiersprache)
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Literatur
[Bearbeiten | Quelltext bearbeiten]- O.-J. Dahl, E. W. Dijkstra, C. A. R. Hoare: Structured Programming. Academic Press, London 1972, ISBN 0-12-200550-3.
Weblinks
[Bearbeiten | Quelltext bearbeiten]- David R. Tribble: Go To Statement Considered Harmful: A Retrospective (einschließlich Originalaufsatz von Dijkstra mit Anmerkungen von Tribble)
- Markus Bautsch:Wikibooks: Strukturierte Programmierung – Lern- und Lehrmaterialien