Wikipedia hat eine Definition für eine control flow graph. Ich habe auch gehört, dass die Terminologie auf "call (flow?) Graph" verweist, aber keine relevanten Ressourcen finden kann. Wie ist die Beziehung zwischen den beiden?Praktische Unterschiede zwischen Kontrollflussdiagramm und Call (Flow?) Graph?
Antwort
Wikipedia definiert eine call graph als eine Darstellung von die aufrufenden Beziehungen zwischen Unterprogrammen in einem Programm. In einem Aufrufgraphen, eine Kante zwischen zwei Knoten f
und g
:
f --> g
stellt die Tatsache dar, dass Subroutine f
Subroutine aufruft g
. Ein Aufrufdiagramm gibt eine interprozedurale Ansicht eines Programms.
Ein Control Flow Graph (CFG) liefert feinere "Details" in die Struktur des Programms als Ganzes und insbesondere der Subroutinen. Zum Beispiel wird das CFG von einer Subroutine f
macht explizit alle Pfade, die durch eine bedingte Verzweigung induziert werden:
/branch1 \
begin --> condition --> --> codeblock --> g --> end
\ branch2/
Diese Art von CFG verwendet wird, um eine intra-prozeduralen Ansicht einer Subroutine zu bauen.
+1 von mir .. Übrigens würde ich die Definition in Wikipedia nicht als autoritativ verwenden. – Jus12
Ich glaube nicht, dass "Call Flow Graph" ein Standardbegriff ist. Wo bist du darauf gestoßen? –
Ich denke OP bedeutete "Call Graph". – Jus12