文章目录
-
- 南京大学 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进行处理,非常感谢!