<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Strukturierte_Programmierung</id>
	<title>Strukturierte Programmierung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Strukturierte_Programmierung"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Strukturierte_Programmierung&amp;action=history"/>
	<updated>2026-05-28T22:45:29Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Strukturierte_Programmierung&amp;diff=19967&amp;oldid=prev</id>
		<title>imported&gt;Pragma124 am 7. März 2025 um 16:15 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Strukturierte_Programmierung&amp;diff=19967&amp;oldid=prev"/>
		<updated>2025-03-07T16:15:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Strukturierte Programmierung&amp;#039;&amp;#039;&amp;#039; ist ein [[programmiersprache]]nübergreifendes [[Programmierparadigma]], aus den 1960er Jahren, noch vor der [[Softwarekrise]]. Es beinhaltet zum einen die baumartige Zerlegung eines [[Computerprogramm|Programms]] in Teilprogramme ([[Prozedur (Programmierung)|Prozeduren]]) und enthält somit das Paradigma der [[Prozedurale Programmierung|prozeduralen Programmierung]]. Zudem verlangt die strukturierte Programmierung auf der untersten Ebene die Beschränkung auf lediglich drei [[Kontrollstruktur]]en:&lt;br /&gt;
&lt;br /&gt;
* Sequenz (hintereinander auszuführende Programmanweisungen)&lt;br /&gt;
* Auswahl/Selektion ([[Verzweigung (Programmierung)|Verzweigung]])&lt;br /&gt;
* Wiederholung/Iteration ([[Schleife (Programmierung)|Schleifen]])&lt;br /&gt;
&lt;br /&gt;
== Hintergrund und Bedeutung ==&lt;br /&gt;
Ein Wendepunkt hin zur strukturierten Programmierung war eine Veröffentlichung von [[Corrado Böhm]] und seinem Studenten Giuseppe Jacopini aus dem Jahr 1966,&amp;lt;ref&amp;gt;Böhm, Jacopini &amp;#039;&amp;#039;Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules&amp;#039;&amp;#039;, Communications of the ACM, Band 9, 1966, S.  366–371, [http://www.cs.unibo.it/~martini/PP/bohm-jac.pdf pdf]&amp;lt;/ref&amp;gt; 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 &amp;#039;&amp;#039;Go To Statement Considered Harmful&amp;#039;&amp;#039; von [[Edsger W. Dijkstra]] aus dem Jahr 1968.&amp;lt;ref&amp;gt;Dijkstra: &amp;#039;&amp;#039;Go To Statement Considered Harmful.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Communications of the ACM.&amp;#039;&amp;#039; 11, 3, 1968, S. 147–148&amp;lt;/ref&amp;gt; Neben anderen war [[Niklaus Wirth]] mit dem Entwurf der Programmiersprache [[Pascal (Programmiersprache)|Pascal]] ein Wegbereiter der strukturierten Programmierung. &lt;br /&gt;
&lt;br /&gt;
Die bekannteste Konsequenz dieses Prinzips ist die Vermeidung oder –&amp;amp;nbsp;abhängig von der Programmiersprache&amp;amp;nbsp;– der eingeschränkte und standardisierte Einsatz der [[Sprunganweisung]], des &amp;#039;&amp;#039;GOTO&amp;#039;&amp;#039;. Das Ergebnis der häufigen Verwendung dieser Anweisungen wird häufig abfällig als [[Spaghetticode]] bezeichnet. &lt;br /&gt;
&lt;br /&gt;
Durch die konsequente Implementierung von Teilprogrammen mit lokaler [[Sichtbarkeit (Programmierung)|Sichtbarkeit]] von [[Identifikator]]en und Kontrollstrukturen vermeiden strukturierte Programme [[Codewiederholung]]en, was Vorteile bei der Suche von [[Programmfehler]]n mit sich bringt, die Programme kürzer und übersichtlicher macht und daher die Wartung von Software vereinfacht.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Structured program patterns.svg|zentriert|mini|906x906px|Die drei grundlegenden Strukturen: Sequenz, Auswahl, Wiederholung dargestellt als [[Nassi-Shneiderman-Diagramm]] (blau) und [[Programmablaufplan]] (grün).]]&lt;br /&gt;
&lt;br /&gt;
== Strukturierte Programmiersprachen ==&lt;br /&gt;
Auch wenn strukturierte Programmierung prinzipiell in allen Sprachen möglich ist, sogar in [[Assemblersprache|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:&lt;br /&gt;
&lt;br /&gt;
* [[Ada (Programmiersprache)|Ada]]&lt;br /&gt;
* [[ALGOL|Algol]]&lt;br /&gt;
* [[C (Programmiersprache)|C]] und [[C++]]&lt;br /&gt;
* [[C-Sharp|C#]]&lt;br /&gt;
* [[COBOL]] (ab COBOL 85)&lt;br /&gt;
* [[Fortran]] (ab Fortran 77)&lt;br /&gt;
* [[Java (Programmiersprache)|Java]]&lt;br /&gt;
* [[Pascal (Programmiersprache)|Pascal]], [[Modula-2]], [[Oberon (Programmiersprache)|Oberon]] und [[Component Pascal]]&lt;br /&gt;
* [[Python (Programmiersprache)|Python]]&lt;br /&gt;
* [[Visual Basic Classic|Visual Basic]]&lt;br /&gt;
* [[Go (Programmiersprache)]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* [[Ole-Johan Dahl|O.-J. Dahl]], [[Edsger W. Dijkstra|E. W. Dijkstra]], [[Tony Hoare|C. A. R. Hoare]]: &amp;#039;&amp;#039;Structured Programming.&amp;#039;&amp;#039; Academic Press, London 1972, ISBN 0-12-200550-3.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* David R. Tribble: [http://david.tribble.com/text/goto.html &amp;#039;&amp;#039;Go To Statement Considered Harmful: A Retrospective&amp;#039;&amp;#039;] (einschließlich Originalaufsatz von Dijkstra mit Anmerkungen von Tribble)&lt;br /&gt;
* Markus Bautsch:{{wikibooks|Strukturierte Programmierung}}&lt;br /&gt;
&lt;br /&gt;
== Fußnoten ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierparadigma]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Pragma124</name></author>
	</entry>
</feed>