摘要 | 第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页 |