摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
目录 | 第8-11页 |
第一章 绪论 | 第11-17页 |
1.1 课题背景及研究意义 | 第11-13页 |
1.1.1 代码克隆产生的原因 | 第11页 |
1.1.2 代码克隆的影响 | 第11-12页 |
1.1.3 代码克隆研究意义 | 第12-13页 |
1.2 国内外研究现状 | 第13-14页 |
1.3 主要研究内容和创新点 | 第14-15页 |
1.4 本文工作及内容安排 | 第15-16页 |
1.5 本章小结 | 第16-17页 |
第二章 代码克隆的检测 | 第17-24页 |
2.1 代码克隆相关术语 | 第17页 |
2.2 代码克隆检测过程 | 第17-18页 |
2.3 代码克隆检测技术 | 第18-21页 |
2.3.1 基于文本的代码克隆检测技术 | 第18-19页 |
2.3.2 基于 token 的代码克隆检测技术 | 第19页 |
2.3.3 基于 AST 的代码克隆检测技术 | 第19-20页 |
2.3.4 基于 PDG 的代码克隆检测技术 | 第20页 |
2.3.5 基于度量的代码克隆检测技术 | 第20-21页 |
2.3.6 其他代码克隆检测技术 | 第21页 |
2.4 代码克隆检测技术的比较 | 第21-22页 |
2.5 代码克隆检测的应用 | 第22页 |
2.6 代码克隆检测发展趋势 | 第22-23页 |
2.7 本章小结 | 第23-24页 |
第三章 基于索引的代码克隆检测技术 | 第24-36页 |
3.1 基于索引的代码克隆检测的实际需求 | 第24页 |
3.2 传统代码克隆检测 | 第24-25页 |
3.3 索引的定义 | 第25-27页 |
3.4 克隆检测过程 | 第27-35页 |
3.4.1 代码格式化 | 第27-28页 |
3.4.2 代码归一化 | 第28-31页 |
3.4.3 索引的建立、更新和查找 | 第31-35页 |
3.5 本章小结 | 第35-36页 |
第四章 基于序列匹配的代码克隆检测技术 | 第36-46页 |
4.1 常用字符串相似度匹配算法 | 第36-37页 |
4.1.1 编辑距离算法 | 第36页 |
4.1.2 最长公共子序列算法 | 第36-37页 |
4.1.3 贪婪字符串匹配算法 | 第37页 |
4.2 基于字符序列匹配的代码克隆检测方法 | 第37-44页 |
4.2.1 序列匹配算法在代码克隆检测中的应用 | 第37页 |
4.2.2 Smith-Waterman 算法简介 | 第37-39页 |
4.2.3 对 Smith-Waterman 算法的改进 | 第39-42页 |
4.2.4 回溯策略 | 第42-44页 |
4.3 克隆检测过程 | 第44-45页 |
4.3.1 预处理阶段 | 第44页 |
4.3.2 持久化中间结果 | 第44-45页 |
4.3.3 克隆检测阶段 | 第45页 |
4.4 本章小结 | 第45-46页 |
第五章 实验结果分析 | 第46-54页 |
5.1 测试平台与配置 | 第46-47页 |
5.2 克隆报告阶段 | 第47-53页 |
5.2.1 克隆结果存储 | 第47页 |
5.2.2 克隆结果比较分析 | 第47-53页 |
5.3 本章小结 | 第53-54页 |
第六章 总结与展望 | 第54-56页 |
6.1 本文工作总结 | 第54-55页 |
6.2 工作展望 | 第55-56页 |
致谢 | 第56-57页 |
参考文献 | 第57-63页 |
附录 | 第63-64页 |
详细摘要 | 第64-67页 |