后缀语法树在代码抄袭检测中的应用研究

需积分: 10 13 下载量 174 浏览量 更新于2024-07-29 收藏 2.29MB PDF 举报
"基于后缀语法树的代码抄袭检测研究" 这篇论文主要探讨的是在信息技术背景下,如何有效地检测代码抄袭问题。随着编程教育的普及和网络技术的发展,代码抄袭已经成为一个日益严重的学术诚信问题。澳大利亚蒙纳什大学的统计数据表明,超过85%的学生承认有过抄袭行为,这对教育质量和学术环境造成了负面影响。 为解决这一问题,论文提出了一个创新的解决方案——基于后缀语法树的代码抄袭检测方法。这种方法专注于C语言程序代码的抄袭检测,因为C语言在教学和实践中广泛应用,且其结构特性使得抄袭行为更难以隐藏。论文首先分析了当前国内外对于程序代码抄袭检测的研究现状,然后针对学生在C语言作业中常见的抄袭手法,如直接复制、修改变量名等,设计了一种新的检测策略。 后缀语法树(Suffix Tree)是一种高效的数据结构,常用于字符串处理和模式匹配。在代码抄袭检测中,后缀语法树能够快速地比较不同代码片段之间的相似性,通过构建和对比程序的后缀树,可以找出潜在的抄袭行为。论文中,作者采用了ANTLR工具来生成C语言的文法文件,ANTLR是一个强大的解析器生成器,能够帮助构建解析树,进一步实现后缀树的构建。 在实际应用中,该方法首先将源代码转化为抽象语法树(Abstract Syntax Tree, AST),然后通过特定算法生成后缀树。通过比较两个或多个后缀树的结构和节点,可以判断代码之间的相似度。如果两个后缀树有大量相同的分支和节点,那么就有可能存在抄袭行为。此外,该方法还可以处理代码的局部修改,如变量重命名,因为它主要关注代码结构而非具体的标识符。 论文的贡献在于提供了一种新的、高效的检测工具,不仅提高了检测的准确性,还减少了误报的可能性。这对于维护学术诚信,提升教学质量具有重要意义。同时,该方法也可以扩展到其他编程语言,为更广泛的代码抄袭检测提供借鉴。 这篇硕士论文深入研究了基于后缀语法树的代码抄袭检测技术,为教育界和软件工程领域提供了有价值的理论和实践指导,有助于创建更加公平、健康的学术环境。