Kontrollfluss

Kontrollfluss

Mit dem Begriff Kontrollfluss bezeichnet man in der Informatik die zeitliche Abfolge der einzelnen Befehle eines Computerprogramms. Der Kontrollfluss eines Programms ist gewöhnlich durch die Reihenfolge der Befehle innerhalb des Programms vorgegeben, jedoch erlauben Kontrollstrukturen von der sequenziellen Abarbeitung des Programms abzuweichen. Die Abarbeitungsreihenfolge der einzelnen Befehle, welche das Programm vorgibt, wird von Kontrollflussabhängigkeiten festgelegt: Ein einzelner Befehl wird entweder dann ausgeführt, wenn der unmittelbar vorhergehende Befehl abgearbeitet und der Programmzähler inkrementiert wurde oder wenn ein Sprungbefehl auf die entsprechende Stelle im Speicher zeigt und dem Programmzähler durch den Sprungbefehl ein neuer Wert zugewiesen wird. Beide Kontrollflussabhängigkeiten müssen bei der parallelen Ausführung von Befehlen des Programms berücksichtigt werden.

Inhaltsverzeichnis

Grundlagen

Der geplante Ablauf eines Programmes wird durch einen sog. Programmablaufplan (oder auch Kontrollflussgraph) dargestellt. Darin sind alle möglichen Verzweigungen innerhalb des Kontrollflusses verzeichnet. Der tatsächliche Kontrollfluss ist nun die Befehlsfolge während einer Ausführung des Programms.

Beispiel

Betrachtet wird der folgende Ausschnitt aus einem in C implementierten Programm:

 int i = 0;
 ... /* hier kann i irgendwo geändert werden */
 if (i == 5) 
    printf("i==5\n");
 else
    printf("i!=5\n");

Der Kontrollflussgraph sieht nun wie folgt aus:

        i=0
         .
         .
ja +-- i==5? --+ nein
   |           |
"i==5\n"    "i!=5\n"

Der tatsächliche Kontrollfluss des Programms hängt nun vom konkreten Wert der Variable i zum Zeitpunkt des Erreichens der if-Anweisung ab.

Befindet sich die if-Anweisung innerhalb einer Schleife, so könnte beim erneuten Schleifendurchlauf der alternative Zweig des Kontrollflussgraphen durchlaufen werden.

Anwendung

Die Analyse des Kontrollflusses ist ein Teil der Programmanalyse. Die Anwendung des Programms auf einen Testfall führt zu einem bestimmten Kontrollfluss und kann mit dem erwarteten Kontrollfluss verglichen werden. Dadurch lassen sich potentielle Fehler durch falsche Kontrollstrukturen aufspüren. Ebenso kann eine teilweise Bewertung des Testfalles vorgenommen werden. Im optimalen Fall (sofern Schleifen vorhanden sind) sind alle im Kontrollflussgraph enthaltene Befehle auch im durch den Testfall erzeugten Kontrollfluss enthalten.

Siehe auch

Referenzen


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Kontrollfluss (UML) — Ein Kontrollfluss (engl. ControlFlow) ist ein Modellelement in der Unified Modeling Language (UML), einer Sprache für die Modellierung der Strukturen und des Verhaltens von Software und anderen Systemen. Ein Kontrollfluss ist eine spezielle… …   Deutsch Wikipedia

  • Programmfluss — Mit dem Begriff Kontrollfluss bezeichnet man in der Informatik die zeitliche Abfolge der einzelnen Befehle eines Computerprogramms. Der Kontrollfluss eines Programms ist gewöhnlich durch die Reihenfolge der Befehle innerhalb des Programms… …   Deutsch Wikipedia

  • Objektorientierte Programmierung — Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma. Die Grundidee dabei ist, Daten und Funktionen, die auf diese Daten angewandt werden können, möglichst eng in einem… …   Deutsch Wikipedia

  • Back-To-Back-Test — Dynamische Software Testverfahren sind bestimmte Prüfmethoden um beim Softwaretest Fehler in Software aufzudecken. Während bei statischen Verfahren die zu testende Software nicht ausgeführt wird, setzen dynamische Verfahren die Ausführbarkeit der …   Deutsch Wikipedia

  • Bedingte Anweisung — Eine Bedingte Anweisung ist in der Programmierung ein Programmabschnitt, der nur unter einer bestimmten Bedingung ausgeführt wird. Eine Verzweigung legt fest, welcher von zwei (oder mehr) Programmabschnitten, abhängig von einer (oder mehreren)… …   Deutsch Wikipedia

  • Blockdiagramm — Signalflussplan der Linearisierung als Beispiel eines Blockdiagramms …   Deutsch Wikipedia

  • Case-Anweisung — Eine Bedingte Anweisung ist in der Programmierung ein Programmabschnitt, der nur unter einer bestimmten Bedingung ausgeführt wird. Eine Verzweigung legt fest, welcher von zwei (oder mehr) Programmabschnitten, abhängig von einer (oder mehreren)… …   Deutsch Wikipedia

  • Continuation-passing style — Unter Continuation Passing Style (kurz CPS) versteht man einen Programmierstil, bei dem der Kontrollfluss ausschließlich durch Continuations gesteuert wird. Continuations sind Funktionen, die die verbleibenden Berechnungen repräsentieren. An die… …   Deutsch Wikipedia

  • Datenflussarchitektur — Eine Datenfluss Architektur ist eine alternative Rechnerarchitektur zur sog. von Neumann Architektur, nach der die allermeisten heute gängigen Rechner implementiert sind. Ein nach der Datenfluss Architektur implementierter Rechner heißt… …   Deutsch Wikipedia

  • Datenflussgraph — Eine Datenfluss Architektur ist eine alternative Rechnerarchitektur zur sog. von Neumann Architektur, nach der die allermeisten heute gängigen Rechner implementiert sind. Ein nach der Datenfluss Architektur implementierter Rechner heißt… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”