程序代码相似度检测方法研究及应用

来源 :中南大学 | 被引量 : 0次 | 上传用户:meirumen
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序语言课程是计算机及其相关专业非常重要的一门专业基础课,程序语言的教学显得尤为重要。随着互联网技术的迅速发展,信息化教育成为现代化新型教育模式,然而互联网带来便利的同时,也为程序代码抄袭提供了方便。程序代码相似度检测不仅可以帮助教师检测学生的程序作业抄袭情况,同时对软件版权的鉴定也具有好的现实意义。代码相似度检测技术的研究已有几十年的历史,基本归结为两大类技术:属性计数技术和结构度量技术。本文在分析各种代码相似度检测系统的基础后,对相似度检测方法展开研究。属性计数技术被证明只对完全抄袭的代码检测有效,当今比较成熟的系统都采用结构度量技术,主要利用GST字符串匹配算法进行结构度量。首先分析了基于串匹配算法的代码相似度检测方法,并对其进行了改进;然后充分挖掘程序代码的结构信息,设计了基于子图同构算法的代码相似度检测方法。该方法采用基于回溯搜索的子图同构算法,把程序源码按节点类型和边类型转换成程序依赖图。代码的结构信息主要是由各行代码间的数据依赖和控制依赖关系构成,代码行转换成七种类型的节点,根据代码层次树结构将节点之间的数据依赖和控制依赖关系进行查找,获得程序依赖图。为了去除对输出结果没有影响的无用代码,程序依赖图经过主数据流的抽取最终变为主数据流图。把需要进行检测的两段代码的主数据流图使用基于回溯搜素的子图同构算法找出两个图的最大公共子图,根据公共子图的大小来确定两段代码的相似度,可以有效排除一些无用的结构和变量,提高检测的准确性。基于GST串匹配和子图同构的相似度检测方法,本文在程序语言支撑平台上设计和实现了代码抄袭检测功能。论文详细阐述了系统各模块的设计和代码实现,最后用两个实验程序集对系统进行了性能测试,实验结果表明本系统不仅能检测到普通的抄袭手段,而且对高级抄袭手段也能达到接近90%的检测准确率。
其他文献
随着互联网的快速发展,IPv4协议暴露出越来越多的缺陷。计算机网络由IPv4技术向IPv6技术过渡是网络发展的必然趋势。同时这个过渡过程是一个循序渐进、相互共存的过程。由于
诞生于20世纪20年代的模式识别是一门研究对象描述和分类方法的学科。模式识别的方法主要有线性分类方法、神经网络算法和随机优化算法等。线性分类因其简单、易于分析和实现
在无线传感器网络(WSN)中,自主移动节点能够获知自身的运动信息,包括相对位移和相对偏转角度,其定位技术具有一定的独特性。本文主要针对无线传感器网络自主移动节点的定位及信标
为了适应不断变化的需求变更,软件只有不断地进行演化。在软件的演化过程中,软件体系结构将难以避免地发生改变,这可能会导致软件体系结构逐渐退化。而软件体系结构退化将致
图像匹配技术是图像处理技术领域的关键问题,图像匹配分为基于图像像素灰度的图像匹配方法和基于图像特征的图像匹配方法。本文针对基于局部视觉特征的图像匹配算法中存在的处
随着虚拟现实技术以及语义Web技术的深入研究与广泛应用,融合语义的虚拟环境成为虚拟现实领域的一个新的研究方向。语义虚拟环境技术通过为虚拟场景添加计算机可以理解的并自
图像的局部不变特征具备在多种图像变换(如几何变换,光照变换等)下的不变性、低冗余性、无需预先对图像分割以及独特性等特点,已经被广泛用于图像匹配、物体识别、图像分类及
当前互联网已经发展到移动互联网时代,不仅仅只有传统的PC机可以浏览互联网,手机、平板电脑等各种移动设备也可以接入互联网,计算机的信息处理已经进入大数据时代。而这些大
随着网络技术的不断发展,分布式多媒体应用已经涉及人们生活的各个领域。多媒体同步是分布式多媒体系统的关键技术和基础,多媒体同步关系存在于多媒体的整个生命周期中。分布
人脸识别一直是生物识别领域的研究热点,在计算机、(应用)数学、电子、自动化、可视化、虚拟现实、图像处理与模式识别等学科都有较广泛的研究,同时也在航空航天、气象、刑事侦