| 摘要 | 第1-5页 |
| Abstract | 第5-10页 |
| 第1章 绪论 | 第10-18页 |
| ·研究背景及研究意义 | 第10-11页 |
| ·形式程序验证 | 第10-11页 |
| ·形状分析 | 第11页 |
| ·研究现状 | 第11-13页 |
| ·指针程序分析的相关研究 | 第11-13页 |
| ·循环不变式推断的相关研究 | 第13页 |
| ·本文概述 | 第13-18页 |
| ·研究工作 | 第14-15页 |
| ·主要贡献和特色 | 第15页 |
| ·章节安排 | 第15-18页 |
| 第2章 形状图和形状图逻辑 | 第18-38页 |
| ·PointerC 语言简介 | 第18-22页 |
| ·PointerC 语言的语法定义 | 第18页 |
| ·源程序示例 | 第18-22页 |
| ·形状图 | 第22-24页 |
| ·形状图顶点和边的定义 | 第22-23页 |
| ·形状图的约束 | 第23-24页 |
| ·以形状图为基础的断言语言 | 第24-29页 |
| ·常见数据结构的形状图定义 | 第25-26页 |
| ·断言演算 | 第26-29页 |
| ·基于形状图的程序规范和程序推理规则 | 第29-32页 |
| ·指针型赋值语句u = v | 第29-30页 |
| ·分配空间语句u = malloc(t) | 第30-31页 |
| ·释放空间语句free(u) | 第31页 |
| ·与函数构造有关的语句 | 第31-32页 |
| ·复合、条件和循环语句的规则 | 第32页 |
| ·分情况规则 | 第32页 |
| ·结构规则(frame rule) | 第32页 |
| ·完整的形状图逻辑 | 第32-35页 |
| ·形状图和符号断言之间的联系 | 第32-33页 |
| ·程序推理规则的补充 | 第33-34页 |
| ·形状图逻辑的可靠性分析 | 第34-35页 |
| ·本章小结 | 第35-38页 |
| 第3章 基于形状图逻辑的形状分析 | 第38-46页 |
| ·形状系统 | 第38-41页 |
| ·形状推断规则 | 第38-39页 |
| ·形状检查规则 | 第39-40页 |
| ·和类型系统的区别 | 第40-41页 |
| ·各程序点形状图的构建 | 第41-45页 |
| ·函数前条件形状图 | 第41页 |
| ·局部变量声明语句形状图 | 第41-42页 |
| ·指针型赋值语句形状图 | 第42页 |
| ·分配空间语句及释放空间语句形状图 | 第42-43页 |
| ·条件语句形状图 | 第43-44页 |
| ·复合语句形状图 | 第44页 |
| ·返回语句(函数后条件)形状图 | 第44-45页 |
| ·函数调用语句形状图 | 第45页 |
| ·本章小结 | 第45-46页 |
| 第4章 循环不变形状图的推断 | 第46-54页 |
| ·常见循环语句分析 | 第46-47页 |
| ·循环不变形状图推断方法 | 第47-50页 |
| ·展开与折叠 | 第47-48页 |
| ·抽象方法 | 第48-49页 |
| ·蕴涵式G_(i+1)(?)G_0ˇ ...ˇG_i | 第49页 |
| ·循环不变形状图 G_0ˇ ...ˇG_i | 第49-50页 |
| ·循环语句的形状检查 | 第50-51页 |
| ·算法终止性分析 | 第51-52页 |
| ·本章小结 | 第52-54页 |
| 第5章 程序验证器原型及实验评测 | 第54-62页 |
| ·程序验证器系统原型 | 第54-55页 |
| ·系统组成 | 第54页 |
| ·系统流程 | 第54-55页 |
| ·实验评测 | 第55-61页 |
| ·实验一:删除二叉排序树上的一个节点 | 第56-57页 |
| ·实验二:在有序单链表中插入节点 | 第57页 |
| ·实验三:合并两个有序单链表 | 第57-59页 |
| ·实验数据统计及分析 | 第59-61页 |
| ·实验总结 | 第61-62页 |
| 第6章 结束语 | 第62-64页 |
| ·论文工作总结 | 第62-63页 |
| ·进一步研究方向 | 第63-64页 |
| 参考文献 | 第64-68页 |
| 致谢 | 第68-70页 |
| 在读期间发表的学术论文与取得的研究成果 | 第70页 |