论文部分内容阅读
互联网的发展个我们带来更多资讯的同时,也使得程序设计类课程中的抄袭行为更加普遍。程序设计是高等院校计算机专业教学中不可或缺的实践与教学环节,程序设计语言类别也是多种多样。作业以电子文档形式提交给教师是程序设计类课程的共同特点。学生完成作业的过程中从网上下载或拷贝其他同学的代码的现象愈演愈烈。抑制代码抄袭现象、提高程序设计类课程的教学质量越来越重要。这就需要准确、高效的代码抄袭检测方法。因此,对有效的抄袭识别技术及其应用研究有重要的意义。本文主要从计算机辅助教学的角度,针对学生作业和测试中的常见抄袭手段,提出一种基于AST(抽象语法树)的、可以用于多种编程语言的代码抄袭检测方法。首先根据不同编程语言的文法文件运用语法分析器生成相应的词法、语法分析器;然后通过语法、词法分析器把相应的源程序变为抽象语法树的形式,并对生成的抽象语法树进行去除冗余信息等优化处理;接下来运用序列匹配的方法进行代码相似度的计算;最后提取相似部分的特征生成特征向量,对生成的向量聚类分析,找到“抄袭团伙”。实验结果表明,本文提出的“基于AST的多语言代码抄袭检测方法”。改变了大多数同类研究中只注重相似度计算、缺失抄袭团伙分析的现状。进一步完善了此项研究。只要提供某种高级语言的文法文件,就可以对相应的语言代码进行解析,实现语言抄袭检测,从而使该方法具有良好的通用性、可扩展性。