静态分析的四种基本方法

  • 数据流分析(Data Flow Analysis)
    将数据看作是图,节点是程序的基本快,边是描述控制如何从一个基本快转移掉另一个基本快。图可以解决很多问题,例如:以
    图中边的抽象得出数学方程,七届就是可达性问题的答案;PREfix、SLAM静态分析系统使用了数据流分析的思想。
  • 基于约束的分析(Constraint-based Analysis)
    从程序问文本中产生一系列的本地约束,通过解释这些约束来验证所有的属性。Cqual是这种类型的系统。
  • 抽象解析(Abstract Interpretation)
    将程序映射成更加抽象的域(Domain),试分析更加具有可跟中兴并具有检验代码的作用;抽象解析通过计算能够直接得出分析结果,而不是像其他
    类型的方法使用验证的方式进行分析;ASTREE是抽象分析的静态检查器。
  • 类型与结果分析(Type and Effect Analysis)
    是结果系统和注释的类型系统的混合。结果系统表达一个语句的执行有什么结果;注释的类型系统提供结果系统的予以。这种分析广泛应用于各类编译器(如:gcc - Wall选项)

参考klockwork介绍

posted @ 2015-04-09 10:19  cyy_cnblog  阅读(4629)  评论(0编辑  收藏  举报