Aller au contenu principal

Kontrollflussgraph


Kontrollflussgraph


Ein Kontrollflussgraph ist ein Begriff aus der Informatik und bezeichnet einen gerichteten Graphen, der dazu dient, den Programmablauf eines Computerprogramms zu beschreiben. Kontrollflussgraphen werden unter anderem zur Programmoptimierung eingesetzt.

Jeder Kontrollflussgraph besteht aus

  • einer Menge von Knoten V {\displaystyle V} , die die Grundblöcke des beschriebenen Programms darstellen, sowie
  • einer Menge von gerichteten Kanten E {\displaystyle E} , die mögliche Übergänge, d. h. Programmabläufe darstellen.

Ü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.

Wenn von einem Knoten mehrere Kanten wegführen (der Knoten also Quelle mehrerer gerichteter Kanten ist), so entspricht das einer Verzweigung. Schleifen finden sich als Zyklen in Kontrollflussgraphen wieder. Beispielsweise zeigt der Zyklus B C E D B {\displaystyle B\to C\to E\to D\to B} im unten abgebildeten Graph G 2 V , E , A {\displaystyle G_{2}\langle V,E,A\rangle } an, dass im zugrundeliegenden Computer-Programm eine Schleife enthalten ist.

Im abgebildeten Graphen G 1 {\displaystyle G_{1}} mit Eingangsknoten A {\displaystyle A} und Ausgangsknoten F {\displaystyle F} existiert kein Pfad vom Eingangsknoten A {\displaystyle A} zum Knoten G {\displaystyle G} . Der Grundblock G {\displaystyle G} stellt damit toten Code dar.

Graph G 2 {\displaystyle G_{2}} enthält einen Zyklus. Das zugrundeliegende Programm enthält damit eine (implizite oder explizite) Schleife.

  • Dominanzrelation (Kontrollflussgraph)
  • Programmablaufplan
  • Reduzierbarer und irreduzierbarer Kontrollflussgraph
  • Compilerbau
  • McCabe-Metrik

Text submitted to CC-BY-SA license. Source: Kontrollflussgraph by Wikipedia (Historical)



ghbass