一种基于抽象语法树的同源性比对的优化算法
摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第一章 绪论 | 第9-15页 |
1.1. 研究背景及意义 | 第9-10页 |
1.2. 研究现状及分析 | 第10-13页 |
1.3. 论文的主要工作及结构 | 第13-15页 |
第二章 软件同源性比对技术概述 | 第15-19页 |
2.1. 源代码抄袭分析 | 第15-16页 |
2.2 源代码同源性比对技术 | 第16-17页 |
2.2.1 基于字符串的软件同源性比对 | 第16-17页 |
2.2.2 基于Token的软件同源性比对 | 第17页 |
2.2.3 基于图的软件同源性比对 | 第17页 |
2.3 本章小结 | 第17-19页 |
第三章 基于抽象语法树的软件同源性比对关键技术 | 第19-39页 |
3.1 抽象语法树概述 | 第19-20页 |
3.1.1 树形结构的术语 | 第19-20页 |
3.1.2 抽象语法树的定义 | 第20页 |
3.2 软件源代码编译原理 | 第20-27页 |
3.3 正则表达式的应用 | 第27-28页 |
3.4 上下文无关文法概述 | 第28-31页 |
3.4.1 上下文无关文法的定义 | 第28-30页 |
3.4.2 上下文无关文法下的语法分析树 | 第30-31页 |
3.5 JavaCC | 第31-37页 |
3.5.1 JavaCC概述 | 第32页 |
3.5.2 解析过程中词法分析和语法分析 | 第32-35页 |
3.5.3 语法树的获取 | 第35-37页 |
3.6 本章小结 | 第37-39页 |
第四章 基于抽象语法树的同源性比对算法的优化分析 | 第39-51页 |
4.1 源代码语法树结构的HashCode转换 | 第39-41页 |
4.2 源代码同源性比对算法的优化 | 第41-48页 |
4.2.1 源代码同源性比对的分析 | 第41-42页 |
4.2.2 一对一的源代码同源性比对分析 | 第42-43页 |
4.2.3 对JavaCC解析结果的分析 | 第43-45页 |
4.2.4 一对一的源代码同源性比对的优化 | 第45-46页 |
4.2.5 一对一的源代码同源性比对的优化分析 | 第46-48页 |
4.3 算法的多线程优化 | 第48-49页 |
4.4 本章小结 | 第49-51页 |
第五章 优化的同源性比对算法的实现 | 第51-61页 |
5.1 源代码的预处理模块 | 第51-53页 |
5.2 源代码的AST转换 | 第53-59页 |
5.2.1 源代码的词法分析模块 | 第53-56页 |
5.2.2 源代码的语法分析模块 | 第56-59页 |
5.3 源代码的数据库存储模块 | 第59页 |
5.4 本章小结 | 第59-61页 |
第六章 算法的验证与分析 | 第61-71页 |
6.1 比对效果的验证与分析 | 第61-68页 |
6.1.1 实验环境 | 第61-62页 |
6.1.2 比对样本分析 | 第62-68页 |
6.2 多线程的优化验证与分析 | 第68-69页 |
6.3 本章小结 | 第69-71页 |
第七章 总结与展望 | 第71-73页 |
参考文献 | 第73-75页 |
致谢 | 第75页 |