Met*_*est 12 compiler-construction static-analysis dataflow abstract-interpretation
数据流分析和抽象解释之间有什么区别,它们是否用于相同的目的?这两者相对于彼此的利弊是什么.
ihj*_*hji 10
简而言之,它们属于不同的类别.这就像比较布料和裤子.
抽象解释是一个使用抽象域和抽象传递函数形式化定点计算的框架.抽象解释保证如果满足某些条件,则应在有限步骤中找到固定点(详情见:http://www.di.ens.fr/~cousot/COUSOTpapers/POPL77.shtml).抽象解释的伟大之处来自于扩大和缩小.抽象解释可以计算无限域上的固定点.
IMO,数据流分析只是抽象解释的一个例子.由于数据流分析使用的大多数具体域都是有限的,因此您甚至不需要扩大和缩小范围.
归结为“效率与准确性”。
数据流分析比抽象解释更多地尝试合并路径数据。抽象解释贯穿所有路径,保持数据值抽象。