static-analysis - 控制流图和调用(流?)图之间的实际区别?

标签 static-analysis control-flow call-flow

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

最佳答案

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

      f --> g

表示子程序f调用子程序 g .调用图给出了 程序间一个程序的 View 。

控制流图 (CFG) 为整个程序的结构,特别是子程序的结构提供了更精细的“细节”。例如,子程序的 CFG f将明确所有由条件分支引起的路径:
                             / branch1 \
    begin --> condition -->             --> codeblock --> g --> end
                             \ branch2 /

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

关于static-analysis - 控制流图和调用(流?)图之间的实际区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889118/

相关文章:

objective-c - 在mac中使用Klocwork分析一个iOS应用

c# - 在 C# 代码中查找未捕获的异常

python - 为什么 PEP 3107(或 484)不包含注释全局/局部变量的语法?

c++ - 我如何验证重构保留了代码流,而不仅仅是行为?

loops - Perl循环标签算作GOTO吗?

uml - 描述循环模式更合适的 UML 图是什么?

node.js - 在 "everything has been done"之后退出 node.js 脚本的好方法是什么

python - 在 Python 中创建依赖关系图