南京大学-软件分析-课程05-数据流分析基础理论2

7. 迭代算法与不动点定理关联

南京大学-软件分析-课程05-数据流分析基础理论2_第1张图片
我们需要证明自己的Transfer Function是单调的
南京大学-软件分析-课程05-数据流分析基础理论2_第2张图片

代码什么时候会停止

南京大学-软件分析-课程05-数据流分析基础理论2_第3张图片

8. May/Must Analysis, A Lattice View

May Analysis

Unsafe result->Safe result
如果我是一个查错的定义,
没有no definition的错误,这是一个不安全的结果。
所有的definition都有可能有错,这是一个安全但没有用的结果。
南京大学-软件分析-课程05-数据流分析基础理论2_第4张图片
这里假设{a,c}是Truth。
南京大学-软件分析-课程05-数据流分析基础理论2_第5张图片

9. MOP and Distributivity

  • Meet-Over-All-Paths Solution (MOP)
  • 枚举所有的路径从Entry到Si
    南京大学-软件分析-课程05-数据流分析基础理论2_第6张图片
    南京大学-软件分析-课程05-数据流分析基础理论2_第7张图片

南京大学-软件分析-课程05-数据流分析基础理论2_第8张图片

10. Constant Propagation

常量传播:

  • Given a variable x at program point p, determine whether x is guaranteed to hold a constant value at p.
  • The OUT of each node in CFG, includes a set of pairs (x, v) where x is a variable and v is the value held by x after that node

A data flow analysis framework (D, L, F) consists of:

  • D:forwards
  • L:如下
  • F:如下
  • 南京大学-软件分析-课程05-数据流分析基础理论2_第9张图片

南京大学-软件分析-课程05-数据流分析基础理论2_第10张图片

11. Worklist Algorithm

南京大学-软件分析-课程05-数据流分析基础理论2_第11张图片

Worklist算法对比迭代算法减少了无用的重复部分。
南京大学-软件分析-课程05-数据流分析基础理论2_第12张图片

你可能感兴趣的:(学习,笔记)