基于抽象语法树的软件语义分析方法研究
摘要 | 第5-6页 |
Abstract | 第6-7页 |
第1章 绪论 | 第11-18页 |
1.1 选题背景及意义 | 第11-12页 |
1.2 软件语义分析相关技术研究现状及分析 | 第12-16页 |
1.2.1 抽象语法树解析技术研究现状及分析 | 第12-13页 |
1.2.2 系统依赖图技术研究现状 | 第13-14页 |
1.2.3 程序切片技术研究现状及分析 | 第14-16页 |
1.3 主要研究内容 | 第16页 |
1.4 论文组织结构 | 第16-18页 |
第2章 基于GCC标准化文件的抽象语法树重建算法 | 第18-31页 |
2.1 软件分析方法介绍 | 第18-19页 |
2.2 引入抽象语法树的原因 | 第19-20页 |
2.2.1 抽象语法树在软件语法分析中的意义 | 第19-20页 |
2.2.2 选择GCC抽象语法树文本文件的依据 | 第20页 |
2.3 抽象语法树相关问题及分析 | 第20-24页 |
2.3.1 抽象语法树的传统构造流程及问题分析 | 第20-21页 |
2.3.2 GCC工作原理及选择依据 | 第21-22页 |
2.3.3 GCC抽象语法树结构分析 | 第22-24页 |
2.4 抽象语法树的重建算法研究 | 第24-30页 |
2.4.1 GCC抽象语法树存在的问题 | 第25页 |
2.4.2 GCC抽象语法树节点规范化算法 | 第25-26页 |
2.4.3 删除GCC抽象语法树的冗余节点的算法 | 第26-28页 |
2.4.4 基于邻接表重建抽象语法树算法 | 第28-30页 |
2.5 本章小结 | 第30-31页 |
第3章 基于依赖图等价代换的SSDG构建算法 | 第31-42页 |
3.1 控制依赖图的生成算法 | 第31-33页 |
3.1.1 控制依赖图介绍 | 第31页 |
3.1.2 控制依赖子图生成算法 | 第31-32页 |
3.1.3 基于控制依赖子图生成控制依赖图 | 第32-33页 |
3.2 控制流图的生成算法 | 第33-36页 |
3.2.1 控制流图的介绍 | 第33-34页 |
3.2.2 常见语句的控制流图 | 第34-35页 |
3.2.3 基于控制依赖图的控制流图生成算法 | 第35-36页 |
3.3 数据依赖图 | 第36-37页 |
3.4 程序依赖图 | 第37-38页 |
3.5 基于依赖图等价代换的SSDG生成算法 | 第38-41页 |
3.5.1 系统依赖图结构介绍 | 第38-39页 |
3.5.2 系统依赖图的构造 | 第39页 |
3.5.3 系统依赖图存在的问题 | 第39-40页 |
3.5.4 依赖图等价代换算法 | 第40-41页 |
3.6 本章小结 | 第41-42页 |
第4章 基于SSDG可达性的动态切片生成算法 | 第42-53页 |
4.1 程序切片相关理论介绍 | 第42-44页 |
4.1.1 程序切片概念 | 第42页 |
4.1.2 程序切片的准则 | 第42-43页 |
4.1.3 程序切片的分类 | 第43-44页 |
4.2 引入程序切片的意义 | 第44-46页 |
4.3 基于数据流方程的切片算法 | 第46-48页 |
4.4 基于SSDG可达性的动态切片生成算法 | 第48-51页 |
4.4.1 图的可达性算法实施方法及问题分析 | 第48-49页 |
4.4.2 带循环分析的动态切片算法 | 第49-50页 |
4.4.3 图可达性节点标记算法 | 第50-51页 |
4.5 本章小结 | 第51-53页 |
第5章 实验及结果分析 | 第53-63页 |
5.1 实验目的 | 第53页 |
5.2 实验参数 | 第53页 |
5.3 实验环境 | 第53页 |
5.4 实验过程 | 第53-56页 |
5.5 实验结果分析 | 第56-62页 |
5.5.1 抽象语法树处理结果分析 | 第56-58页 |
5.5.2 依赖图构建实验及分析 | 第58-59页 |
5.5.3 程序切片算法实验及分析 | 第59-62页 |
5.6 本章小结 | 第62-63页 |
结论 | 第63-65页 |
参考文献 | 第65-69页 |
攻读硕士学位期间发表的论文和取得的科研成果 | 第69-71页 |
致谢 | 第71页 |