数据流分析:一种静态程序分析方法,用来推断程序在各个控制流位置上“数据如何传播与变化”(例如变量的可能取值、是否已定义、哪些表达式可复用等),常用于编译器优化、错误检测与安全分析。(该术语在不同语境下也可指更广义的“信息在系统中流动的分析”。)
/ˈdeɪtə floʊ əˈnæləsɪs/
Data flow analysis can tell whether a variable is used before it is defined.
数据流分析可以判断一个变量是否在定义之前就被使用。
By running data flow analysis on the control-flow graph, the compiler can compute reaching definitions and enable optimizations like dead-code elimination and constant propagation.
通过在控制流图上进行数据流分析,编译器可以计算“到达定义”等信息,并启用诸如死代码消除和常量传播之类的优化。
该术语由三部分构成:data(数据)+ flow(流动、传播)+ analysis(分析)。在编译原理与程序分析领域中,它特指对程序控制流结构上“信息/属性如何沿路径传播”的系统性推断;这一用法在20世纪后期随着现代编译器与形式化程序分析的发展而普及。