用于交互式程序验证的数据流分析技术
摘要 | 第4-6页 |
Abstract | 第6-7页 |
第一章 绪论 | 第13-19页 |
1.1 研究背景 | 第13-14页 |
1.2 研究现状 | 第14-15页 |
1.3 本文工作 | 第15-17页 |
1.4 本文组织结构 | 第17-19页 |
第二章 背景知识 | 第19-33页 |
2.1 本章概述 | 第19页 |
2.2 形式化逻辑系统 | 第19-29页 |
2.2.1 Hoare Logic | 第19-23页 |
2.2.2 Separation Logic | 第23-24页 |
2.2.3 Scope Logic | 第24-29页 |
2.3 数据流分析 | 第29-32页 |
2.3.1 基本算法 | 第29-31页 |
2.3.2 初始值和收敛性保证 | 第31-32页 |
2.4 本章小结 | 第32-33页 |
第三章 Scope Logic上的交互程序验证 | 第33-45页 |
3.1 本章概述 | 第33页 |
3.2 基本概念 | 第33-37页 |
3.2.1 程序的语法规则 | 第33-34页 |
3.2.2 控制流图 | 第34-35页 |
3.2.3 程序点和程序性质 | 第35-37页 |
3.3 交互式程序验证 | 第37-39页 |
3.3.1 总体框架 | 第37-38页 |
3.3.2 交互式数据流分析方法 | 第38-39页 |
3.4 用于交互验证的数据流分析 | 第39-42页 |
3.4.1 数据流值传播函数必须满足的条件 | 第40-41页 |
3.4.2 数据流值交汇函数必须满足的条件 | 第41-42页 |
3.4.3 数据流分析技术参与交互 | 第42页 |
3.5 本章小结 | 第42-45页 |
第四章 单链表形状分析 | 第45-73页 |
4.1 本章概述 | 第45-47页 |
4.2 程序性质和数据流值表示 | 第47-53页 |
4.2.1 递归函数和性质 | 第47-50页 |
4.2.2 流值的半格表示 | 第50-53页 |
4.3 数据流值的传播和交汇 | 第53-66页 |
4.3.1 传播经过的基本语句 | 第53-54页 |
4.3.2 性质证明过程 | 第54页 |
4.3.3 kill过程 | 第54-58页 |
4.3.4 gen过程 | 第58-60页 |
4.3.5 prop过程 | 第60-63页 |
4.3.6 传播过程收敛性 | 第63-65页 |
4.3.7 meet过程 | 第65-66页 |
4.4 用于交互验证的单链表形状分析 | 第66-68页 |
4.4.1 单链表形状流值传播必须满足的条件 | 第66-67页 |
4.4.2 单链表性转流值交汇函数必须满足的条件 | 第67页 |
4.4.3 单链表形状分析参与交互 | 第67-68页 |
4.5 算法复杂度分析与验证实例 | 第68-72页 |
4.6 本章小结 | 第72-73页 |
第五章 原型工具实现和验证实例 | 第73-85页 |
5.1 本章概述 | 第73页 |
5.2 具实现 | 第73-78页 |
5.2.1 源码处理和持久化模块 | 第73-75页 |
5.2.2 可视化操作模块 | 第75-76页 |
5.2.3 验证工具集模块 | 第76-78页 |
5.3 实验研究 | 第78-84页 |
5.3.1 基本赋值语句 | 第80-81页 |
5.3.2 复杂语句 | 第81-84页 |
5.4 本章小结 | 第84-85页 |
第六章 总结与展望 | 第85-89页 |
6.1 论文总结 | 第85-86页 |
6.2 未来工作 | 第86-89页 |
参考文献 | 第89-93页 |
简历与科研成果 | 第93-95页 |
致谢 | 第95-96页 |