南京大学 静态软件分析(static program analyzes)-- introduction 学习笔记.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
南京大学 静态软件分析(static program analyzes)-- introduction 学习笔记 本学习笔记总结了南京大学静态软件分析(static program analyzes)领域的基础知识,涵盖了编程语言、静态分析定义、抽象和over-approximation等概念。静态软件分析是编程语言中应用层面的一个细分领域,旨在确保系统的可靠性、安全性和其他承诺。 一、编程语言 编程语言是静态软件分析的基础,涉及到语言的语法、语义、类型系统和运行时环境等方面。语言的核心内容包括语法、语义和类型系统的设计,而环境部分则需要考虑如何为运行中的程序提供运行时环境,例如编译器的设计和内存的分配管理。 二、静态分析定义 静态分析是指对程序 P 的分析,以确定其行为是否满足某些属性,而不需要实际运行 P。静态分析可以回答许多问题,例如程序中是否存在私密信息泄露、空指针、不安全的类型转换、死代码等。静态分析的目的是确保系统的可靠性和安全性。 三、抽象和over-approximation 静态分析中有两个重要概念:抽象和over-approximation。抽象是将程序从原始的高维源代码空间映射到一个抽象的低维符号空间,使得后续的优化、分析和处理更加方便。over-approximation是指转换函数的定义,以确定如何对抽象符号进行运算。转换函数的定义取决于分析问题和语义。 四、Transfer Functions 转换函数 转换函数定义了抽象符号的运算结果,需要注意的是,转换函数和具体的语义和待分析问题有关。在抽象过程中,值域空间的降维抽象会导致静态符号执行和动态实际实行的结果之间存在差异。 五、Control Flows 控制流 控制流是静态分析中的另一个重要概念,涉及到程序的控制流程和数据流程。控制流的定义取决于分析问题和语义。 六、静态分析的应用 静态分析有很多实际应用,例如判断一段 PHP 代码是否存在外部任意参数执行风险,判断一段代码是否存在死代码等。静态分析可以确保系统的可靠性和安全性,提高软件的质量和可靠性。
- 2301_773215032023-10-26终于找到了超赞的宝藏资源,果断冲冲冲,支持!
- 粉丝: 1
- 资源: 2834
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助