Programmfluss

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

Referenzen

  • Dahl, Dijkstra und Hoare: "Structured Programming", Academic Press, 1972.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

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

  • Maximale Laufzeit — Die maximale Laufzeit oder maximale Ausführungszeit (englisch Worst Case Execution Time, WCET) gibt die längste Zeit an, die ein Computerprogramm oder Programmteil auf einer bestimmten Plattform zur Ausführung benötigen kann. Sie wird bestimmt… …   Deutsch Wikipedia

  • WCET — Die maximale Ausführungszeit (englisch Worst Case Execution Time, WCET) gibt die längste Zeit an, die ein Computerprogramm oder Programmteil auf einer bestimmten Plattform zur Ausführung benötigen kann. Sie wird bestimmt durch: die Programmlogik… …   Deutsch Wikipedia

  • WCET-Analyse — Die maximale Ausführungszeit (englisch Worst Case Execution Time, WCET) gibt die längste Zeit an, die ein Computerprogramm oder Programmteil auf einer bestimmten Plattform zur Ausführung benötigen kann. Sie wird bestimmt durch: die Programmlogik… …   Deutsch Wikipedia

  • WCET Analyse — Die maximale Ausführungszeit (englisch Worst Case Execution Time, WCET) gibt die längste Zeit an, die ein Computerprogramm oder Programmteil auf einer bestimmten Plattform zur Ausführung benötigen kann. Sie wird bestimmt durch: die Programmlogik… …   Deutsch Wikipedia

  • Worst Case Execution Time — Die maximale Ausführungszeit (englisch Worst Case Execution Time, WCET) gibt die längste Zeit an, die ein Computerprogramm oder Programmteil auf einer bestimmten Plattform zur Ausführung benötigen kann. Sie wird bestimmt durch: die Programmlogik… …   Deutsch Wikipedia

  • Syscall — Ein Systemaufruf, auch Systemcall (von engl. system call) oder kurz Syscall, ist in der Computertechnik eine von Anwendungsprogrammen benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen. Inhaltsverzeichnis 1… …   Deutsch Wikipedia

  • System Call — Ein Systemaufruf, auch Systemcall (von engl. system call) oder kurz Syscall, ist in der Computertechnik eine von Anwendungsprogrammen benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen. Inhaltsverzeichnis 1… …   Deutsch Wikipedia

  • Systemaufruf — Ein Systemaufruf, auch Systemcall (von engl. system call) oder kurz Syscall, ist in der Computertechnik eine von Anwendungsprogrammen benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen, wie etwa das Lesen einer… …   Deutsch Wikipedia

  • Systemcall — Ein Systemaufruf, auch Systemcall (von engl. system call) oder kurz Syscall, ist in der Computertechnik eine von Anwendungsprogrammen benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen. Inhaltsverzeichnis 1… …   Deutsch Wikipedia

  • Brainf*ck — Brainfuck ist eine sogenannte esoterische Programmiersprache, entworfen vom Schweizer Urban Müller um 1993. Die Sprache wird manchmal auch Brainf*ck, Brainf*** oder BF genannt. Brainfuck ist zwar für den ernsthaften Einsatz zu umständlich und… …   Deutsch Wikipedia

Share the article and excerpts

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