基于后缀语法树的代码抄袭检测方法及ANTLR应用
需积分: 10 174 浏览量
更新于2024-08-10
收藏 2.29MB PDF 举报
"这篇文档是关于源代码的形式化表示及其在合成孔径雷达成像算法与实现中的应用,特别是关于代码抄袭检测的方法。文中详细介绍了如何利用后缀语法树进行程序代码的抄袭检测,主要针对C语言。文章分为几个部分,包括检测模型的构建、源代码的形式化以及ANTLR工具的介绍。"
在第三章中,作者提出了一个基于后缀语法树的代码抄袭检测方法。首先,使用ANTLR这个开源工具对C语言源代码进行词法和语法分析,产出源代码的后缀语法树形式。后缀语法树能够保留源代码的结构和部分语义信息,有利于提高检测的准确性。接着,对后缀语法树进行优化并转化为字符串序列,再运用改进的GST(Generalized Suffix Tree)算法进行匹配计算,找出两个源程序的最大匹配集合。最后,通过一个决策函数计算语法树的相似度,以此评估源代码之间的相似程度,从而判断是否存在抄袭嫌疑。
ANTLR是一个强大的语言识别和翻译工具,能够自动生成识别器和编译器,支持多种编程语言。它的前身是PCCTS,主要用于根据用户定义的语法描述构建特定语言的解析器。在本文的上下文中,ANTLR用于生成C语言源代码的后缀语法树,这有助于提取源代码的关键结构信息,进一步辅助抄袭检测。
检测模型如图3-1所示,整个过程包括源代码输入、后缀语法树生成、字符串序列构建、匹配计算和相似度决策。通过优化语法树和采用改进的GST算法,可以提高检测效率,减少误报和漏报的可能性。
论文还强调,AST(抽象语法树)遍历后的文本序列包含源代码的结构和部分语义信息,这些信息在比较过程中能提升检测的精确性。此外,通过改进的GST算法,可以高效地处理大量代码的匹配问题,对于大规模代码库的抄袭检测具有重要意义。
论文的背景是信息技术的快速发展导致抄袭行为的增多,特别是在学生编程作业中。为了维护教学秩序和提升教学质量,研究高效的代码抄袭检测方法显得尤为重要。文中提到的基于后缀语法树的方法,是对现有抄袭检测技术的一种创新,旨在更准确、更快速地识别代码抄袭行为。
188 浏览量
2017-12-19 上传
点击了解资源详情
2021-09-30 上传
2016-02-29 上传
2021-09-30 上传
127 浏览量
点击了解资源详情
jiyulishang
- 粉丝: 25
- 资源: 3821
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章