控制流图:在程序分析与编译器领域中,用有向图表示程序执行路径的结构。图中的节点通常是基本块(basic block),边表示可能的控制转移(如顺序执行、条件分支、循环、跳转、异常等)。常用于优化、数据流分析、死代码消除、可达性分析与漏洞审计等。
/kənˈtroʊl floʊ ɡræf/
A control-flow graph shows how a program can move from one block to another.
控制流图展示程序如何从一个代码块流向另一个代码块。
The compiler builds a control-flow graph to run data-flow analyses and detect unreachable code paths.
编译器会构建控制流图,用于进行数据流分析并检测不可达的代码路径。
“control-flow graph”由 control flow(控制流) 与 graph(图) 组合而成:前者指程序执行时指令顺序与跳转的规律,后者指用节点与边表达关系的图结构。该术语在编译器理论与程序分析发展过程中逐渐固定,用于将“程序的可能执行路径”形式化、可计算化。