以下为范文的一部分,钻石会员可获取全部内容。 查看如何成为钻石会员
全文字数:2723
基于多种检测技术的源代码相似度的研究
摘要:源代码的检测技术主要包括三种,基于文本检测技术、基于token检测技术和基于抽象语法树检测技术。然而,这三种检测技术根据其原理不同都存在一定的缺陷。本文提出以三种检测方式相结合的综合相似度分析方法,综合考虑三者比对的相似度和误报率。
关键词:检测;文本;token;抽象语法树;综合
一、引言
目前,随着软件技术的飞速发展,各类开源代码也越来越多,质量也参差不齐,导致好多开发人员只会修改程序而不会真正的开发程序,软件质量也在下降。而学校要求的软件作业也均以电子版的方式提交,电子文本更易被复制及传播,而学生抄袭他人的作业也变得习以为常,这些问题的存在,学生的能力培养也在走下坡路。在这种背景下,对软件源代码的克隆、抄袭等现象也日益涌现,手段越来越高明,特别是开源代码更容易被攻击,漏洞更容易被利用。为了应对这种代码现象,更好的对软件进行评估测试,代码检测技术的研究的需求也就越来越迫切。
目前市场上源代码的检测技术主要有三种:基于文本比对的检测技术、基于Token比对的检测技术和基于抽象语法树比对的检测技术。其中一些技术已经得以实现并成为可以应用的工具。基于文本比对的检测技术已经很成熟,Baker等人做过相关的研究,且现在成形的比对软件也有UltraCompare,WinDiff,WinMerge 等等。常见文本手段有文本的完全拷贝、增加删除行、顺序无关代码块调换等。
二、 基于文本比对的检测技术
基于多种检测技术的源代码相似度的研究相关范文