基于后缀语法树的代码抄袭检测研究

来源 :内蒙古师范大学 | 被引量 : 0次 | 上传用户:yd2846996
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着信息技术的不断发展,抄袭正变得越来越容易和难以防范。在程序设计类课程作业和在线测试的考评中,学生相互抄袭的现象也普遍存在。澳大利亚蒙纳什(Monash)大学对其学生中的代码抄袭现象进行调查统计显示:高达85.4%的学生承认抄袭过他人的作业。日益严重的抄袭现象已经严重地破坏了正常的教学秩序,也影响了教学质量和学生素质的提高。为了扼制不良学风,对高效率的代码抄袭检测方法进行研究显得日趋必要。本文在分析目前国内外程序代码抄袭检测研究的基础上,针对学生C语言程序代码作业中常见的抄袭方法,提出一种基于后缀树的程序代码抄袭检测方法。首先制定基于ANTLR的C语言文法文件,利用ANTLR生成C语言的词法及语法分析器,并对程序代码进行词法和语法分析,生成C程序代码的后缀语法树。其次对生成的后缀语法树进行遍历和优化,去除语法树中的冗余信息,得到一个字符串序列,该字符串序列标准化地表示了程序代码中的信息。第三,采用改进后的贪婪字符串匹配算法,对后缀树字符串序列进行了匹配计算,通过一个确定了决策函数计算出两个字符串序列的相似值,并以此为依据来度量两个程序代码之间相似程度。最后根据给定的阈值来判断两个程序之间是否存在抄袭嫌疑。基于上述方法,设计并实现了一个C语言程序代码抄袭检测实验系统,该实验系统可以检测程序集合中任意两个程序代码之间的相似度。选用了不同的方法对实验系统的有效性和可靠性进行测评。实验结果表明,该方法能够检测出C语言代码中存在的多种抄袭手段,并有较高的检测效率。与国外成熟的的检测系统MOSS对比,该实验系统在检测精度和准确性方面都有较高的优越性和可靠性。
其他文献
互联网的高速增长,在给我们的生活带来极大的便利的同时,也让我们湮没在了信息的海洋中,海量的数据已经使得我们寻找相关信息时,很难快捷的发现我们的目标信息。为了克服信息
随着计算机技术的迅速发展,招生考试工作信息化程度不断提高,北京教育考试院每年通过对各级各类考试的组织,积累了大量的考试数据。这些数据隐含着学校教育的真实现状以及学科教
学位
高维数据通常有几十甚至成百上千个属性,而很多高维数据的类仅存在子空间内。子空间聚类算法尝试在数据集的不同子空间上探测和发现有意义的簇类。   一种新的高维数据子空
多机器人编队控制是多机器人系统研究中一种常见的协作问题,是许多多机器人协调合作问题的基础。近年来,随着多机器人系统在军事、工业、航空航天等领域的广泛应用,多机器人
随着空间信息科学理论与技术的深入研究和广泛应用,遥感技术的应用已渗透到人类生存的自然环境、国防技术、国民经济和社会生活的各个方面,在人类赖以生存的生产与生活中起着举
作为一个开源、高效的虚拟机,Xen被广泛地应用和研究。Xen最初只支持半虚拟化,随着Intel VT技术的推出,使得Xen能够支持完全虚拟化。   Xen默认采用信用调度算法,在单独运行I/
近年来,国内外食品安全问题接连不断,食品安全问题己成为当今各国政府、消费者和科技界广为关注的焦点问题之一。为此,建立完整有效的食品安全追溯体系势在必行。我国现有的食品
学位
知识发现是当前计算机科学与人工智能领域最为活跃的研究课题之一,粗糙集由于其特有的优势,成为了知识发现领域非常重要的理论。而连续属性离散化是利用粗糙集进行知识获取所
分类是机器学习的主要任务之一。生活中的一些决策问题便可以看作分类问题,比如与人们健康紧密相关的疾病诊断。分类算法将会从训练样本中训练合适的模型从而给出更加智能的
工作流的概念起源于生产组织与办公自动化领域。工作流就是工作流程的计算模型,即将工作流程中的工作任务前后组织在一起的逻辑和规则,在计算机中以恰当的模型进行表示并对其实