基本原理
数据流分析是一种用来获取相关数据沿着程序执行路径流动的信息分析技术。分析对象是程序执行路径上的数据流动或可能的取值
- 优点:具有更强的分析能力,适合需要考虑控制流信息且变量属性之操作十分简单的静态分析问题
- 缺点:分析效率低,过程间分析和优化算法复杂,编程工作量大,容易出错且效率低
一个数据流分析框架(D, L, F)包含:
- D:数据流的方向,前向或者后向
- L:包含数值作用域V和操作符meet ⊓ 或 join ⊔ 的lattice
- F:一系列V to V的传递函数
Tips: 数据流分析可以看成在一个lattice的数值域上,迭代地使用传递函数和操作符