基于差异代码克隆搜索的代码块补全推荐算法研究
摘要 | 第5-7页 |
ABSTRACT | 第7-8页 |
第1章 绪论 | 第14-22页 |
1.1 研究背景及意义 | 第14-15页 |
1.2 研究现状 | 第15-18页 |
1.2.1 关键词粒度的代码补全技术 | 第15-16页 |
1.2.2 token粒度的代码补全技术 | 第16-17页 |
1.2.3 代码行粒度的代码补全技术 | 第17页 |
1.2.4 代码块粒度的代码补全技术 | 第17-18页 |
1.3 本文研究内容 | 第18-19页 |
1.3.1 差异代码克隆技术的研究及改造 | 第18-19页 |
1.3.2 代码块补全推荐算法的设计 | 第19页 |
1.4 论文组织 | 第19-22页 |
第2章 问题定义及相关知识 | 第22-36页 |
2.1 问题定义 | 第22-23页 |
2.1.1 代码块概念 | 第22页 |
2.1.2 代码块补全推荐问题定义 | 第22-23页 |
2.2 代码表现形式 | 第23-26页 |
2.2.1 token序列 | 第23-24页 |
2.2.2 抽象语法树 | 第24-25页 |
2.2.3 程序依赖图 | 第25-26页 |
2.3 代码克隆相关概念 | 第26-27页 |
2.3.1 代码克隆的相关定义 | 第26-27页 |
2.3.2 代码克隆的类型 | 第27页 |
2.3.3 代码克隆检测的评估指标 | 第27页 |
2.4 代码聚类相关技术 | 第27-35页 |
2.4.1 代码特征 | 第28-29页 |
2.4.2 相似性度量方法 | 第29-30页 |
2.4.3 聚类技术及相关算法 | 第30-35页 |
2.5 本章小结 | 第35-36页 |
第3章 差异代码克隆技术研究及改造 | 第36-48页 |
3.1 问题分析 | 第36页 |
3.1.1 问题描述 | 第36页 |
3.1.2 解决思路 | 第36页 |
3.2 差异代码克隆技术研究 | 第36-42页 |
3.2.1 不同种类的代码克隆算法研究及对比 | 第36-39页 |
3.2.2 差异代码克隆算法的研究 | 第39-40页 |
3.2.3 差异相似代码发现能力对比 | 第40-42页 |
3.3 差异代码克隆方法改造 | 第42-46页 |
3.3.1 计算成本的降低 | 第42-43页 |
3.3.2 改造后算法流程 | 第43页 |
3.3.3 实验与结果分析 | 第43-46页 |
3.4 本章小结 | 第46-48页 |
第4章 代码块补全推荐算法设计与实现 | 第48-64页 |
4.1 问题分析 | 第48页 |
4.1.1 问题描述 | 第48页 |
4.1.2 解决思路 | 第48页 |
4.2 算法设计 | 第48-54页 |
4.2.1 相似代码搜索 | 第48-49页 |
4.2.2 候选代码划分 | 第49-53页 |
4.2.3 代码块相关性排序 | 第53-54页 |
4.2.4 算法整体流程 | 第54页 |
4.3 数据集及评估指标 | 第54-57页 |
4.3.1 数据集来源及介绍 | 第54-56页 |
4.3.2 测试数据集及待补全代码块构建 | 第56页 |
4.3.3 评估指标 | 第56-57页 |
4.4 实验与结果分析 | 第57-63页 |
4.5 本章小结 | 第63-64页 |
第5章 总结 | 第64-68页 |
5.1 本文工作 | 第64-65页 |
5.2 本文贡献与创新之处 | 第65-66页 |
5.3 进一步工作 | 第66-68页 |
参考文献 | 第68-74页 |
致谢 | 第74-76页 |
在读期间发表的学术论文与取得的研究成果 | 第76-78页 |
攻读学位期间参加的科研项目 | 第78页 |