Kontrollflussgraph
Ein Kontrollflussgraph (CFG) ist eine graphische Repräsentation des Kontrollflusses eines Programms oder einer Funktion. Knoten repräsentieren in der Regel sogenannte Basic Blocks, also zusammenhängende Folgen von Anweisungen ohne Sprünge, deren einziger Eintrittspunkt der Beginn des Blocks und der einzige Austrittspunkt das Ende ist. Kanten verbinden Blöcke und kennzeichnen mögliche Sprünge der Ausführung von einem Block zum nächsten.
Ein CFG enthält typischerweise einen Einstiegsknoten (Entry) und oft einen Exit-Knoten. Die Kanten entstehen durch bedingte
Verwendung: CFGs dienen der statischen Analyse und Optimierung. Sie ermöglichen Datenflussanalysen wie Erreichbarkeit, Liveness oder konstanter
Eigenschaften: CFGs sind abstrahierte Modelle des Programms. Sie erleichtern Analysen, können aber bei komplexen Programmen sehr
Varianten: In vielen Compilern handelt es sich um intraprozedurale CFGs; es gibt auch interprocedurale CFGs oder