数据流分析:一种用于理解程序中“数据如何在各个语句/基本块之间传播与变化”的分析方法,常见于编译器优化与静态程序分析。它通常在控制流图(CFG)上计算诸如“某变量在此处是否已定义”“某值是否仍然活跃”等性质。(该术语在不同教材中也可能涵盖多种具体分析,如到达定义、活跃变量等。)
/ˈdeɪtəfloʊ əˈnæləsɪs/
Dataflow analysis helps the compiler remove unnecessary calculations.
数据流分析帮助编译器移除不必要的计算。
Using dataflow analysis over the control-flow graph, we can determine which definitions reach each program point and enable optimizations like constant propagation and dead-code elimination.
在控制流图上进行数据流分析,我们可以确定哪些定义会到达每个程序位置,从而支持常量传播、删除死代码等优化。
dataflow 由 data(数据)+ flow(流动) 组合而成,强调“数据在程序中的流动路径”;analysis 来自希腊语词根,表示“分析、分解研究”。合起来指对程序中数据传播规律的系统性计算与推导,术语在编译器与程序分析领域中逐渐固定下来。