11

维基百科有一个控制流图的定义。我还听说过有关“调用(流?)图”的术语,但找不到任何相关资源。两者之间有什么关系?

4

2 回答 2

32

维基百科将调用图定义为程序中子程序之间调用关系的表示。在调用图中,两个节点之间的边fg

      f --> g

表示 subroutinef调用 subroutine的事实g。调用图给出了程序的跨过程视图。

控制流图 (CFG) 为整个程序的结构,特别是子程序的结构提供了更精细的“细节”。例如,子程序的 CFGf将明确所有由条件分支诱导的路径:

                             / branch1 \
    begin --> condition -->             --> codeblock --> g --> end
                             \ branch2 /

这种 CFG 用于构建子程序的程序内视图。

于 2012-03-27T12:56:52.087 回答
8

调用图 (CG)控制流图 (CFG)由节点和边组成。CG是过程间的,节点代表子程序(方法、函数……),而边代表两个子程序之间的调用者调用关系(例如,A->B,“A”是调用者子程序,而“B”是称为子程序)。CFG是过程内的,节点表示程序语句,包括调用的子例程和条件语句,而边表示程序的流程。当CGCFG结合起来时,它被称为过程间控制流图(ICFG)CFG生成比CG更耗费资源,但更详细。

于 2020-01-14T18:28:21.763 回答