程序代码相似度检测方法研究及应用 项目申报的基本思路与目的 根据程序语言的特性,实现一个程序代码相似度检测的软件系统,可以计算对同一个程序设计题目,每个学生提交的代码与其它学生的代码相似度,达到阀值以上即判定为抄袭。使用该系统,可以有效地防止学生抄袭他人的代码,减轻教师人工判定的劳动强度。 程序的相似度检测与一般文本的相似度检测不同的是:文本主要检测在一段文字范围内文本的重复数目,而学生所书写的代码都较为简单,编程语言的关键字和系统函数名、系统提供的类库中的类名占相当大的比例,而这些不应当做为相似度检测的依据,而应当从程序本身的特征入手。 程序的源代码可以视为视为一种连续的标记串(Token String)。通过比较标记串获取相似程度的信息。对学生提交的电子档程序,两两之间进行雷同检测,最终给出相似度计算结果,再根据给定的阈值判定雷同程序是否为抄袭。 项目的科学性、先进性及独特之处 针对程序源代码的特殊性,本项目主要从以下角度入手: 分析一般的学生代码抄袭手法,找出最合适的样本,做为将来分析和检验的依据。 提取程序源代码的结构特征,将程序按照关键字序列、自定义变量序列、自定义函