程序代码相似性度量方法研究

来源 :中山大学 | 被引量 : 0次 | 上传用户:acmi99
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
计算机信息技术的飞速发展,使得资源的获取和使用也变得更加的快捷方便。但与此同时,信息资源之间的抄袭也变得越来越简单和难以防范。例如在计算机的程序设计类课程中,进行程序作业完成提交及在线测试时,学生之间进行彼此抄袭的现象非常的普遍。这种现象严重影响了教学质量、制约了学生素质的提高发展,更加无法确保考核的公平公正性。此外,在软件商业领域中,软件产品发生版权争端的事件也时有发生。对程序代码相似性度量方法及其应用的进一步深入高效研究,将在很大程度上扼制在程序设计类课程中存在的普遍的抄袭现象,加大对软件商业领域中软件产品的知识产权保护力度。本文分析了目前国内外在程序相似性度量领域的相关研究,对常用的相似性度量检测方法做了综合的对比分析。并在此基础上对程序代码相似性度量方法进行了以下的相关研究。首先,对于传统字符串匹配算法GST算法在进行串匹配时需要逐个比较串的每个字符、造成时问复杂度相对较大的问题,提出了一种基于Java多线程并行匹配的设计方式,以此对GST算法的匹配过程进行了改进,有效的提高了算法进行匹配检测的时间效率;然后,针对GST算法时间复杂度和参加检测匹配的字符串长度成正比的特点,对能够代表程序语义结构的token序列,提出一种设计思想:在对其语义没有影响的条件下对其长度进行缩短,可以进一步降低匹配的时间复杂度;最后,针对利用工具生成抽象语法树时会包含大量的冗余信息,容易造成资源的极大浪费的问题,设计并实现了一种构造抽象语法树的算法,该算法通过先创建父节点后创建子节点,再将其关联的方式,将程序中类、方法等体现程序语义结构的有用信息进行抽象语法树的构造,并且设计了类信息表和方法信息表进行数据的存储和更新,方便数据的使用。通过抽象语法树的算法设计,在构造生成语法树后,可以遍历解析语法树使其生成能够表示程序语义结构的token序列串,再结合改进的字符串匹配算法GST进行相似度的计算,得到最终的相似性度量分析结果。根据上述的方法理论,本文设计并且实现了一个基于Java语言的程序代码相似度检测系统,该系统可以计算源程序对之间的相似度。在同等测试程序集和程序对的基础上和Moss系统的抄袭检测结果进行了对比分析。实验结果表明,本文的研究内容,可以有效的检测出大部分抄袭手段,并且具有较高的检测时问效率。在代码检测的精度和准确度方面都具有较高的可靠性。
其他文献
高分辨率应用程序在日常生活中使用广泛,对于这些应用程序,可以使用高清平板液晶显示器或等离子显示器作为输出设备。然而,此类设备受到物理的限制,显示屏幕的尺寸有限。与其
近年来,说话人识别技术日趋成熟,说话人识别作为生物认证技术的一种,有它独特的优势,比如声音是非接触的,自然的,用户比较容易接受。由于语音这一媒介自身特殊的优势,通过声
随着互联网的发展,搜索引擎的重要性与日俱增。如何有效的查找需要的信息是非常关键的,一个好的搜索引擎可以极大的节省用户查找信息的时间。搜索引擎包含多个组成部分,其中网页
This thesis describes the design,implementation and testing of a fullyautonomous and programmable autopilot system for small scaleautonomous unmanned aerial vehi
随着芯片制造技术的发展,单个芯片中可以集成更多的IP(Intellectual property)核,片上系统的总线结构已经不能适应系统芯片的发展,因此一种全新的集成电路体系结构NoC(networks-
Web服务作为一种新型的分布式计算模型,以其自包含、模块化、松散耦合、基于标准、高度可集成能力等优点成为当今工业界和学术界共同关注的焦点。但是,单个Web服务功能有限,
随着集成电路制造技术的进步及市场对功能需求的提升,在SoC中的处理架构也在持续地演进,为了达到更高的处理效能,多处理器片上系统(MPSoC)已成了新一代SoC的主流设计趋势。采用
通信网络的发展经历了从简单到复杂,从集中到分布的过程。近几年数字编码技术的不断提高,促使流媒体技术发展很快,并已经应用在视频点播等领域。为提高网络应用性能,CDN(Cont
近些年来,随着科技的迅速发展,导致数据量的不断增多,这在无形中带来了很多的问题,比如很多数据需要进行分类和整理,单纯的依靠人工去分类这些数据将会产生非常大的工作量,给人们的
信息安全事关国家安全、经济发展,必须采取措施确保信息安全。随着计算机网络和多媒体技术的飞速发展,信息安全已成为当前的重要研究问题。信息隐藏是一种新兴的综合性的信息