基于抽象语法树和改进粒子群算法的代码同源性分析
摘要 | 第4-5页 |
Abstract | 第5-6页 |
第一章 绪论 | 第10-16页 |
1.1 研究背景 | 第10页 |
1.2 国内外研究现状 | 第10-14页 |
1.2.1 基于文本的同源性分析 | 第11-13页 |
1.2.2 基于令牌的同源性分析 | 第13页 |
1.2.3 基于语法树的同源性分析 | 第13-14页 |
1.2.4 基于语义的同源性分析 | 第14页 |
1.3 本文的主要工作 | 第14-15页 |
1.4 本文的组织结构 | 第15-16页 |
第二章 代码相似度检测概述 | 第16-21页 |
2.1 程序代码抄袭概述 | 第16页 |
2.2 程序代码抄袭的相关定义 | 第16-17页 |
2.3 编译原理概述 | 第17-19页 |
2.3.1 词法分析 | 第18页 |
2.3.2 语法分析 | 第18-19页 |
2.4 ANTLR介绍 | 第19-20页 |
2.5 本章小结 | 第20-21页 |
第三章 抽象语法树的生成 | 第21-33页 |
3.1 表达式的抽象语法树结构 | 第21-25页 |
3.2 语句的抽象语法树结构 | 第25-27页 |
3.3 匹配失败时的改进思路 | 第27-28页 |
3.4 语法树的遍历 | 第28-30页 |
3.5 语法树的存储 | 第30-31页 |
3.6 本章小结 | 第31-33页 |
第四章 粒子群算法及其改进 | 第33-42页 |
4.1 粒子群算法的描述 | 第33-34页 |
4.2 适应值函数 | 第34-38页 |
4.2.1 建立AHP模型 | 第34页 |
4.2.2 设置判断矩阵 | 第34-36页 |
4.2.3 一致性检验 | 第36-37页 |
4.2.4 属性权重的确定 | 第37-38页 |
4.3 算法步骤 | 第38-39页 |
4.4 粒子群算法的改进的策略 | 第39-41页 |
4.4.1 粒子的编码方式 | 第40页 |
4.4.2 变异策略 | 第40-41页 |
4.4.3 收敛因子的优化 | 第41页 |
4.5 本章小结 | 第41-42页 |
第五章 代码抄袭的检测过程的设计与实现 | 第42-49页 |
5.1 运行环境 | 第42-43页 |
5.2 输入模块 | 第43-44页 |
5.3 预处理模块 | 第44-47页 |
5.3.1 预处理模块的作用 | 第44-45页 |
5.3.2 预处理模块的设计与实现 | 第45-47页 |
5.4 AST分析结果生成模块 | 第47页 |
5.5 相似度计算模块及输出模块 | 第47-48页 |
5.6 本章小结 | 第48-49页 |
第六章 实验结果及其分析 | 第49-53页 |
6.1 问题的提出 | 第49页 |
6.2 基本粒子群算法和改进后的收敛性比较 | 第49页 |
6.3 代码同源性测试实验 | 第49-52页 |
6.3.1 实验程序集的选取 | 第49-50页 |
6.3.2 实验结果与分析 | 第50-51页 |
6.3.3 学生程序比赛抄袭检测实验 | 第51-52页 |
6.4 本章小结 | 第52-53页 |
第七章 总结与展望 | 第53-55页 |
7.1 工作总结 | 第53页 |
7.2 不足及未来展望 | 第53-55页 |
致谢 | 第55-56页 |
参考文献 | 第56-59页 |
攻读学位期间发表的论文 | 第59页 |