摘要 | 第4-6页 |
Abstract | 第6-8页 |
第一章 绪论 | 第16-22页 |
1.1 研究背景 | 第16-18页 |
1.1.1 程序验证 | 第17页 |
1.1.2 程序分析 | 第17-18页 |
1.2 研究问题 | 第18-19页 |
1.3 主要工作 | 第19-20页 |
1.4 论文组织结构 | 第20-22页 |
第二章 程序分析和验证的基本概念 | 第22-27页 |
2.1 程序验证 | 第22-23页 |
2.1.1 Hoare逻辑 | 第22页 |
2.1.2 Scope逻辑 | 第22-23页 |
2.2 抽象解释 | 第23-24页 |
2.3 不变式自动生成技术 | 第24-26页 |
2.4 本章小结 | 第26-27页 |
第三章 自动合成数组程序的全称量词不变式 | 第27-55页 |
3.1 一个例子 | 第27-30页 |
3.2 归纳循环程序(Induction Loop Programs) | 第30页 |
3.3 数组性质 | 第30-32页 |
3.4 性质的内存域 | 第32-33页 |
3.5 预分析 | 第33-34页 |
3.6 数组性质分析 | 第34-50页 |
3.6.1 数据流值 | 第34-36页 |
3.6.2 join操作 | 第36-39页 |
3.6.3 流函数(Flow Function) | 第39-50页 |
3.7 工具实现和实验 | 第50-54页 |
3.7.1 小程序的分析结果 | 第50-51页 |
3.7.2 SV-COMP数组benchmark分析结果 | 第51-52页 |
3.7.3 与其他工具比较 | 第52-54页 |
3.8 本章小结 | 第54-55页 |
第四章 自动合成线性数据结构程序量词和析取(FOL)不变式的框架 | 第55-91页 |
4.1 语言和预备知识 | 第58-61页 |
4.1.1 扩展归纳循环程序 | 第59-60页 |
4.1.2 性质 | 第60页 |
4.1.3 性质的内存域 | 第60-61页 |
4.2 框架 | 第61页 |
4.3 预分析标识循环控制变量 | 第61-63页 |
4.4 用户提供的不包含量词的原子性质分析 | 第63-64页 |
4.5 lift分析 | 第64-82页 |
4.5.1 量词和析取性质的格 | 第64-70页 |
4.5.2 量词和析取性质集合的格 | 第70-72页 |
4.5.3 D_L上的抽象解释 | 第72-82页 |
4.6 终止性(Termination)和正确性(Soundness) | 第82-86页 |
4.6.1 终止性 | 第82页 |
4.6.2 正确性 | 第82-86页 |
4.7 工具与实验 | 第86-90页 |
4.7.1 一些例子上的分析结果 | 第86-89页 |
4.7.2 SV-COMP array-examples benchmark上的分析结果以及相关工具比较 | 第89-90页 |
4.8 本章小结 | 第90-91页 |
第五章 交互式复杂数据结构程序分析框架 | 第91-113页 |
5.1 一个例子 | 第91-93页 |
5.2 背景与预备知识 | 第93-94页 |
5.2.1 迭代数据流框架 | 第93页 |
5.2.2 抽象域的组合 | 第93-94页 |
5.3 交互式迭代数据流框架 | 第94-106页 |
5.3.1 前向交互式迭代数据流分析方程 | 第95-101页 |
5.3.2 错误外部性质的处理方法 | 第101-103页 |
5.3.3 交互式数据流分析的组合 | 第103-106页 |
5.4 案例研究 | 第106-112页 |
5.4.1 元素属于分析 | 第106-108页 |
5.4.2 容器相交分析和容器内互异分析 | 第108页 |
5.4.3 案例程序上的分析结果 | 第108-112页 |
5.5 本章小结 | 第112-113页 |
第六章 通过抽象程序证明复杂数据结构具体程序 | 第113-138页 |
6.1 一个例子 | 第114-117页 |
6.1.1 利用抽象程序证明具体程序 | 第115-117页 |
6.2 程序一致性关系 | 第117-120页 |
6.2.1 程序语法 | 第117页 |
6.2.2 精化关系 | 第117-119页 |
6.2.3 一致性关系 | 第119-120页 |
6.3 抽象程序和具体程序的对应关系 | 第120-125页 |
6.3.1 变量关系 | 第120-121页 |
6.3.2 程序点关系 | 第121-125页 |
6.4 验证义务 | 第125-128页 |
6.4.1 基本验证义务 | 第125-126页 |
6.4.2 简化证明义务 | 第126-128页 |
6.5 案例研究 | 第128-137页 |
6.5.1 reach程序 | 第128-129页 |
6.5.2 Schorre-Waite程序 | 第129-137页 |
6.6 本章小结 | 第137-138页 |
第七章 总结与展望 | 第138-141页 |
7.1 论文的主要工作 | 第138-139页 |
7.2 进一步的工作 | 第139-141页 |
参考文献 | 第141-152页 |
攻读博士学位期间完成的学术成果 | 第152-154页 |
致谢 | 第154-156页 |