国外研究现状代码相似度检测技术在国外的研究很早时期就已经开始了,从 20 世纪 70 年代起知道现 在,针对程序相似检测的研究从来没有停止过。近些年来,国外已经完善了一些比较成熟的 抄袭检测系统,比如:如:Jplag[1], MOSS[2]以及 YAP[3]等。77726

Halstead[4]是最先提出针对代码相似度检测方法的人,Halstead 提出了用统计程序的本身 属性对代码进行检测的方法。随后 Ottenstein[13]设计出第一个能够自动对代码是否有抄袭现象 进行检测的系统,这个系统基于了 Halstead 所提出的属性计数的方法,主要是对 FORTAN 语 言所编写的程序进行检测。

随着 Halstead 的属性计数方法被用来检测相似度,研究者不断的增加所统计的程序属性,目的是让得出的结果准确性和合理性更高。这其中有 Faidhi 和 Robinson 所实现的抄袭检测系 统[13],该系统通过增加对于程序控制流结构的比较,使得结果与之前相比准确率有所提高。 Grier 也使用属性计数设计了 Accuse 系统[13],在这之后 Vecrco 和 Wise[13]对 Accuse 系统进行 了测试,测试后发现仅仅增加更多的属性,对于准确率的提高微乎甚微,在具体分析之后, 发现仅仅进行属性的基本统计并没有考虑到程序本身的具体结构,程序的内部结构更为重要。 在经过一系列的研究之后,提出了通过结构度量的方式进行相似度检测。

目前国外较为完善的检测系统基本使用的是结构度量技术,有些会结合属性计数的方法 综合使用。一般这些完善的系统都是以互联网服务的形式提供给用户使用,像卡尔鲁斯厄大 学的 Jplag 系统,斯坦福大学的 MOSS 系统等。论文网

现在最流行, 最先进的代码检测系统是斯坦福大学的 MOSS(Measure of Software Similarity)系统。该系统能够检测当前的主流编程语言多达 27 种。其使用的是结构度量技术, 在长久的使用过程中,得到一致的认可,能够在检测过程中达到很高的效率,对于添加无用 代码的修改可以有效的识别出来。MOSS 系统进行代码预处理后,应用 Winnowing 算法对字 符串进行匹配。MOSS 系统是以网页的形式将测试结果返还给用户的,这种形式让用户体验 更为舒适,用户仅需简单的操作就能得到结果。在返还的结果中,用户可以看到程序对比后 给出的相似度的值,如果存在超出给定阈值的代码部分,系统会将程序的这部分代码标记出 不同的颜色,方便用户观察。

。2 国内研究现状

相对比国外而言,国内在此领域的研究起步比较的晚。中国人民警官大学的张文典和任 冬伟[5]研究开发了国内第一个关于相似度的检测系统,其检测的主要是 PASCAL 语言。研究人 员将在实现该系统的时候,将 PASCAL 语言的属性归纳成四大类:控制类、变量累、运算符 类以及标准过程类。最开始,将上面所提到的四种属性分别统计出来,并将统计得到的数据 存入数据文件。接下来,该系统对四个总属性进行比较,如果检测得到的程序间四个总属性 的差值比它们相对应的标准偏差要小的话,可以认为这个两个程序的相似度较高。随后,比 较相似度较高的程序间的所有属性,如果存在相应属性的差值小于标准偏差的情况,那么将

计算:,这之中ℎ表示为统计出的程序间的相似属性值,表示属性的权值。 在比较完程序的所有属性后,计算最后的ℎ值,通过该值进行相似度计算,相似度为,其中代表一共检测的属性的数目。计算完值后,根据该值和给定的阈值判断

是否存有相似度过高的情况。

北京邮电大学[10]的研究人员为了实现相似度检测的功能,运用了基于 XML 的结构度量

上一篇:移动设备人脸检测技术研究现状
下一篇:安卓恶意扣费安全检测方法国内外研究现状

中考体育考试制度国内外研究现状

三江源温度的国内外研究现状

从成长小说角度解读《麦田里的守望者》

健身俱乐部满意度研究现状和参考文献

竞技武术套路素质训练与...

单片机温度控制系统的国内外现状

城市居民医疗保险满意度国内外研究现状

互联网教育”变革路径研究进展【7972字】

LiMn1-xFexPO4正极材料合成及充放电性能研究

网络语言“XX体”研究

新課改下小學语文洧效阅...

安康汉江网讯

我国风险投资的发展现状问题及对策分析

老年2型糖尿病患者运动疗...

麦秸秆还田和沼液灌溉对...

张洁小说《无字》中的女性意识

ASP.net+sqlserver企业设备管理系统设计与开发