摘要 | 第5-7页 |
ABSTRACT | 第7-8页 |
第1章 绪论 | 第12-18页 |
1.1 研究背景 | 第12-14页 |
1.1.1 形式程序验证 | 第12-13页 |
1.1.2 源代码级分析与验证 | 第13-14页 |
1.2 本文概述 | 第14-18页 |
1.2.1 研究工作 | 第14-15页 |
1.2.2 相关工作比较 | 第15-16页 |
1.2.3 主要贡献 | 第16-17页 |
1.2.4 章节安排 | 第17-18页 |
第2章 安全C语言验证系统简介 | 第18-36页 |
2.1 验证系统框架 | 第18-19页 |
2.2 安全C语言 | 第19-22页 |
2.2.1 安全C语言简介 | 第19-20页 |
2.2.2 安全C语言的程序约束 | 第20-22页 |
2.3 安全C的规范语言 | 第22-25页 |
2.3.1 SCSL简介 | 第22-24页 |
2.3.2 SCSL的形状标注 | 第24-25页 |
2.4 形状图逻辑 | 第25-33页 |
2.4.1 形状图定义 | 第25-26页 |
2.4.2 基本数据结构的形状图描述 | 第26-27页 |
2.4.3 形状图变换规则 | 第27-30页 |
2.4.4 形状图演算规则 | 第30-33页 |
2.5 本章小结 | 第33-36页 |
第3章 形状图逻辑扩展 | 第36-48页 |
3.1 形状图变换规则的扩展 | 第36-40页 |
3.1.1 单链表形状变换规则的扩展 | 第36-37页 |
3.1.2 二叉树形状变换规则的扩展 | 第37-40页 |
3.2 循环不变形状图推断流程的改进 | 第40-44页 |
3.2.1 针对形状图变换规则更改进行的改进 | 第40-43页 |
3.2.2 针对推断算法性能的优化 | 第43-44页 |
3.3 形状图演算规则的改进 | 第44-46页 |
3.3.1 指针赋值语句演算规则的改进 | 第44-45页 |
3.3.2 分配空间语句演算规则的改动 | 第45-46页 |
3.4 本章小结 | 第46-48页 |
第4章 形状系统的实现 | 第48-58页 |
4.1 形状系统演算流程 | 第48-50页 |
4.2 形状图变换规则的实现 | 第50-52页 |
4.2.1 使用访问路径展开形状图 | 第50-51页 |
4.2.2 形状图折叠到最简 | 第51-52页 |
4.3 形状图蕴含关系判定方法的实现 | 第52-54页 |
4.4 循环不变形状图自动推断的实现 | 第54-56页 |
4.4.1 循环不变形状图推断流程实现 | 第54-55页 |
4.4.2 形状图抽象的实现 | 第55-56页 |
4.5 本章小结 | 第56-58页 |
第5章 实例分析 | 第58-66页 |
5.1 验证系统现状 | 第58页 |
5.2 实例分析 | 第58-64页 |
5.2.1 双链表反转函数 | 第59-62页 |
5.2.2 二叉排序树删除节点函数 | 第62-64页 |
5.3 本章小结 | 第64-66页 |
第6章 总结与进一步的研究工作 | 第66-68页 |
6.1 本文工作总结 | 第66页 |
6.2 进一步研究工作 | 第66-68页 |
参考文献 | 第68-72页 |
附录1 reverse函数循环不变形状图 | 第72-73页 |
附录2 tree_delete函数的第二个循环不变形状图 | 第73-74页 |
致谢 | 第74-76页 |
在读期间发表的学术论文与取得的其他研究成果 | 第76页 |