流敏感、路径敏感、上下文敏感

数据流分析本质上是流分析。数据流分析是典型的路径不敏感的,尽管可以定义数据流方程产生路径敏感的分析是可能的。

以下介绍的内容并不特定于数据流分析。

  • 一个流敏感的分析会考虑程序中语句的顺序。举例来说,一个流不敏感的指针分析可能认为"变量xy可能指向了同一位置",而一个流敏感分析会认为"在语句20后,变量xy可能指向了同一位置"。
  • 一个路径敏感的分析计算了依赖于分支条件的谓词的不同的信息。比如,如果一个分支条件是x>0,那么在条件不满足的分支,分析会假设x<=0;而在满足条件的分支,会假设x>0确实成立。
  • 一个上下文敏感的分析是一个交互过程分析,在分析目标函数的调用时它将考虑调用的信息。特别的,使用上下文信息,可以回退到原始的调用点,而如果没有这种信息,分析时就必须回退到所有可能的调用点,而丧失潜在的精度。
原文地址:https://www.cnblogs.com/zztian/p/2266502.html