摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
缩略语对照表 | 第11-14页 |
第一章 绪论 | 第14-18页 |
1.1 研究背景与意义 | 第14-15页 |
1.2 国内外研究现状 | 第15-16页 |
1.2.1 模型检测的国内外研究现状 | 第15页 |
1.2.2 基于LLVM框架的程序验证研究现状 | 第15-16页 |
1.3 论文的研究内容与组织结构 | 第16-18页 |
第二章 相关理论及工具简介 | 第18-28页 |
2.1 LLVM IR概述 | 第18-23页 |
2.1.1 LLVM框架简介 | 第18-19页 |
2.1.2 LLVM IR简介 | 第19-20页 |
2.1.3 LLVM IR语法 | 第20-23页 |
2.2 MSVL概述 | 第23-24页 |
2.3 谓词抽象技术概述 | 第24-26页 |
2.3.1 谓词抽象的思想 | 第24-25页 |
2.3.2 谓词抽象的实例 | 第25-26页 |
2.4 工具简介 | 第26-27页 |
2.4.1 Flex和Bison | 第26-27页 |
2.4.2 Clang及MSVL编译器 | 第27页 |
2.5 本章小结 | 第27-28页 |
第三章 基于CEGAR的LLVM IR程序验证方法 | 第28-34页 |
3.1 CEGAR算法思想 | 第28-31页 |
3.1.1 基本概念 | 第28-29页 |
3.1.2 CEGAR算法流程 | 第29-31页 |
3.2 LLVM IR程序的验证方法 | 第31-33页 |
3.3 本章小结 | 第33-34页 |
第四章 基于CEGAR的LLVM IR程序验证工具的设计实现 | 第34-60页 |
4.1 整体设计框架 | 第34-35页 |
4.2 CFA生成模块的设计与实现 | 第35-45页 |
4.2.1 语法树数据结构 | 第36-37页 |
4.2.2 词法分析模块与语法分析模块 | 第37-41页 |
4.2.3 CFA生成算法 | 第41-45页 |
4.3 验证模块的设计与实现 | 第45-55页 |
4.3.1 计算ARG节点的后继节点 | 第46-49页 |
4.3.2 计算ARG节点的抽象公式 | 第49-52页 |
4.3.3 目标状态的判断方法 | 第52-55页 |
4.4 细化模块的设计与实现 | 第55-59页 |
4.4.1 谓词的分类及数据结构 | 第56-57页 |
4.4.2 函数作用域的谓词计算 | 第57-58页 |
4.4.3 局部作用域的谓词计算 | 第58-59页 |
4.5 本章小结 | 第59-60页 |
第五章 基于CEGAR的LLVM IR程序验证工具的测试 | 第60-72页 |
5.1 CFA生成测试 | 第60-65页 |
5.2 LLVM IR程序验证的测试 | 第65-70页 |
5.2.1 C程序生成的LLVM IR程序验证 | 第65-67页 |
5.2.2 MSVL程序生成的LLVM IR程序验证 | 第67-70页 |
5.3 本章小结 | 第70-72页 |
第六章 总结与展望 | 第72-74页 |
6.1 本文总结 | 第72页 |
6.2 工作展望 | 第72-74页 |
参考文献 | 第74-78页 |
致谢 | 第78-80页 |
作者简介 | 第80-81页 |