基于程序依赖图的代码克隆检测算法研究
| 摘要 | 第5-6页 |
| ABSTRACT | 第6-7页 |
| 第1章 绪论 | 第10-24页 |
| 1.1 研究背景及意义 | 第10-11页 |
| 1.2 研究现状 | 第11-21页 |
| 1.2.1 基于文本的代码克隆检测技术 | 第12-13页 |
| 1.2.2 基于token的代码克隆检测技术 | 第13-15页 |
| 1.2.3 基于度量的代码克隆检测技术 | 第15-17页 |
| 1.2.4 基于树的代码克隆检测技术 | 第17-19页 |
| 1.2.5 基于PDG的代码克隆检测技术 | 第19-21页 |
| 1.3 本文研究内容 | 第21-22页 |
| 1.3.1 PDG图结构优化及特征向量过滤算法 | 第21-22页 |
| 1.3.2 图核相似度计算的机器学习预测方法 | 第22页 |
| 1.4 论文组织 | 第22-24页 |
| 第2章 基于PDG的代码克隆检测介绍 | 第24-36页 |
| 2.1 程序依赖图的定义 | 第24-27页 |
| 2.1.1 控制依赖关系 | 第25-26页 |
| 2.1.2 数据依赖关系 | 第26-27页 |
| 2.2 PDG代码克隆检测的总体流程 | 第27-28页 |
| 2.3 PDG代码克隆检测典型算法 | 第28-32页 |
| 2.3.1 基于slicing的算法 | 第28-30页 |
| 2.3.2 基于子图同构的算法 | 第30-32页 |
| 2.4 现有PDG代码克隆检测算法存在的问题 | 第32-34页 |
| 2.5 本章小结 | 第34-36页 |
| 第3章 PDG的预处理及特征向量过滤算法 | 第36-46页 |
| 3.1 PDG图结构优化 | 第36-38页 |
| 3.1.1 PDG的生成及数据格式 | 第36-37页 |
| 3.1.2 存在问题及优化目标 | 第37-38页 |
| 3.1.3 PDG的结构优化 | 第38页 |
| 3.2 特征向量过滤算法 | 第38-43页 |
| 3.2.1 特征向量的引入 | 第38-39页 |
| 3.2.2 存在问题及过滤目标 | 第39页 |
| 3.2.3 过滤算法设计 | 第39-43页 |
| 3.3 实验与效果分析 | 第43-45页 |
| 3.4 本章小结 | 第45-46页 |
| 第4章 子图同构及图核的克隆判定算法 | 第46-62页 |
| 4.1 子图同构克隆判定算法 | 第46-50页 |
| 4.1.1 图同构算法 | 第46-47页 |
| 4.1.2 图数据标准化 | 第47-49页 |
| 4.1.3 图同构检测工具CCSharp | 第49-50页 |
| 4.2 图核相似度计算的机器学习预测方法 | 第50-53页 |
| 4.2.1 图核算法及graphkernels | 第50-51页 |
| 4.2.2 图数据标准化 | 第51页 |
| 4.2.3 分类模型的应用 | 第51-53页 |
| 4.3 实验配置及数据集 | 第53-55页 |
| 4.3.1 对比工具及实验配置 | 第53-54页 |
| 4.3.2 真实数据集 | 第54页 |
| 4.3.3 人造数据集 | 第54-55页 |
| 4.4 实验结果与分析 | 第55-60页 |
| 4.4.1 图同构克隆判定 | 第55-59页 |
| 4.4.2 图核克隆判定 | 第59-60页 |
| 4.5 本章小结 | 第60-62页 |
| 第5章 总结 | 第62-66页 |
| 5.1 本文工作 | 第62-63页 |
| 5.2 本文贡献与创新之处 | 第63-64页 |
| 5.3 进一步工作 | 第64-66页 |
| 参考文献 | 第66-70页 |
| 附录1 插图索引 | 第70-71页 |
| 附录2 表格索引 | 第71-72页 |
| 致谢 | 第72-73页 |
| 在读期间发表的学术论文 | 第73-74页 |
| 攻读学位其间参加的科研项目 | 第74页 |