<?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=Kontrollflussgraph</id>
	<title>Kontrollflussgraph - 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=Kontrollflussgraph"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Kontrollflussgraph&amp;action=history"/>
	<updated>2026-05-30T07:53:49Z</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=Kontrollflussgraph&amp;diff=181869&amp;oldid=prev</id>
		<title>imported&gt;Georg Hügler am 14. Februar 2023 um 17:13 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Kontrollflussgraph&amp;diff=181869&amp;oldid=prev"/>
		<updated>2023-02-14T17:13:38Z</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;{{Lückenhaft|1=Anwendungen fehlen bzw. sind nicht detailliert ausgeführt (bspw.: Elimination toten Codes), Beispiele sind unzureichend (Aussehen gängiger Kontrollflusselemente wie if/while/goto fehlt völlig)}}&lt;br /&gt;
&lt;br /&gt;
Ein &amp;#039;&amp;#039;&amp;#039;Kontrollflussgraph&amp;#039;&amp;#039;&amp;#039; ist ein Begriff aus der [[Informatik]] und bezeichnet einen [[Gerichteter Graph|gerichteten Graphen]], der dazu dient, den [[Kontrollfluss|Programmablauf]] eines [[Computerprogramm]]s zu beschreiben. Kontrollflussgraphen werden unter anderem zur [[Compiler#Programmoptimierung (ausführlich)|Programmoptimierung]] eingesetzt.&amp;lt;ref&amp;gt;{{Literatur |Online=https://web.archive.org/web/20160118005507/http://ieeexplore.ieee.org/xpl/login.jsp?tp=&amp;amp;arnumber=7365827&amp;amp;url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D7365827 |Titel=Masking wrong-successor Control Flow Errors employing data redundancy |Autor=Javad Yousefi |Datum=2015 |Hrsg=IEEE |Seiten=201–205 |DOI=10.1109/ICCKE.2015.7365827 |Sprache=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
&lt;br /&gt;
Jeder Kontrollflussgraph besteht aus&lt;br /&gt;
* einer Menge von Knoten &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt;, die die Grundblöcke des beschriebenen Programms darstellen, sowie&lt;br /&gt;
* einer Menge von gerichteten Kanten &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt;, die mögliche Übergänge, d. h. Programmabläufe darstellen.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise fügt man zur Knotenmenge zusätzlich einen speziellen Eingangs- und Ausgangsknoten hinzu, für die im Programm keine Anweisungen existieren. Diese entsprechen dem Betreten bzw. Verlassen des entsprechenden Programmabschnitts.&amp;lt;ref&amp;gt;{{Literatur |Autor=Aho, Alfred V., Aho, Alfred V. |Titel=Compilers : principles, techniques, &amp;amp; tools |Auflage=2nd ed |Verlag=Pearson/Addison-Wesley |Ort=Boston |Datum=2007 |ISBN=0321486811}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn von einem Knoten mehrere Kanten wegführen (der Knoten also Quelle mehrerer gerichteter Kanten ist), so entspricht das einer [[Verzweigung (Programmierung)|Verzweigung]].&lt;br /&gt;
[[Schleife (Programmierung)|Schleifen]] finden sich als [[Zyklus (Graphentheorie)|Zyklen]] in Kontrollflussgraphen wieder.&lt;br /&gt;
Beispielsweise zeigt der Zyklus &amp;lt;math&amp;gt;B\to C\to E\to D\to B&amp;lt;/math&amp;gt; im unten abgebildeten Graph &amp;lt;math&amp;gt;G_2\langle V,E,A\rangle&amp;lt;/math&amp;gt; an, dass im zugrundeliegenden Computer-Programm eine Schleife enthalten ist.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
[[Datei:Directed acyclic graph.svg|mini|250px|Kontrollflussgraph &amp;lt;math&amp;gt;G_1&amp;lt;/math&amp;gt; mit unerreichbarem Code]]&lt;br /&gt;
[[Datei:Directed graph, cyclic.svg|mini|225px|Kontrollflussgraph &amp;lt;math&amp;gt;G_2&amp;lt;/math&amp;gt; mit Schleife]]&lt;br /&gt;
&lt;br /&gt;
Im abgebildeten Graphen &amp;lt;math&amp;gt;G_1&amp;lt;/math&amp;gt; mit Eingangsknoten &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; und Ausgangsknoten &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; existiert kein [[Weg (Graphentheorie)|Pfad]] vom Eingangsknoten &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; zum Knoten &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;. Der Grundblock &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; stellt damit [[Toter Code|toten Code]] dar.&lt;br /&gt;
&lt;br /&gt;
Graph &amp;lt;math&amp;gt;G_2&amp;lt;/math&amp;gt; enthält einen Zyklus. Das zugrundeliegende Programm enthält damit eine (implizite oder explizite) [[Schleife (Programmierung)|Schleife]].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Dominanzrelation (Kontrollflussgraph)]]&lt;br /&gt;
* [[Programmablaufplan]]&lt;br /&gt;
* [[Reduzierbarer und irreduzierbarer Kontrollflussgraph]]&lt;br /&gt;
* [[Compilerbau]]&lt;br /&gt;
* [[McCabe-Metrik]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Softwarearchitektur]]&lt;br /&gt;
[[Kategorie:Compilerbau]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Georg Hügler</name></author>
	</entry>
</feed>