[南京大学]-[软件分析]课程学习笔记(一)-introduction

文章目录

    • 南京大学 Static program analysis
      • introduction
        • 1. program language and static analysis
        • 2. why we learn static analysis
        • 3. what is static analysis
        • 4. static analysis features and examples

南京大学 Static program analysis

introduction

1. program language and static analysis

所以并不追求完美的静态分析,而是追求useful static analysis:

  • Compromise soundness(false negatives)折中的漏 控制
  • Compromise completeness (false positives) 折中的误 控制

Mostly compromising completeness: Sound but not fully-precise static analysis

绝大多数静态分析追求的都是追求Soundness,会造成误

Soundness is critical to a collection of important(static-analysis) applications such as compiler optimization and program verification.

Static analysis: ensure (or get close to) soundness, while making good trade-offs between analysis precision and analysis speed.

确保soundness,并在分析精度和分析速度之间做好权衡

4. static analysis features and examples

Abstraction + Over-approximation

抽象和过近似

  • abstraction
  • over-approximation
    • transfer function
    • control flows

Example:

transfer function定义了如何在抽象值上评估不同的程序状态,并且应该根据分析问题和不同程序状态的语义去定义

控制流分析,y的两个值是两个branch,执行分支不同会使z的值产生变化。并且在实际中枚举所有路径是不可能的,空间特别庞大,因此flow merging则被很多静态分析采用。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月4日
下一篇 2022年6月4日

相关推荐