语言无关的重复代码查找工具

来源 :浙江大学 | 被引量 : 0次 | 上传用户:zl168
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
任何的计算机系统都包含一定比例的重复代码。这些相似的代码片段的存在不仅使得整个系统显得臃肿并导致性能的下降,而且对于程序的理解,维护,移植,重构等都造成了很大的影响。重复代码的查找结果不仅有助于人们理解代码和系统,而且使得人们能够有针对性的提高系统的性能及完善系统的设计,甚至重复代码片段分析有助于人们理解代码和系统。现在重复代码分析被用于程序理解,代码质量分析,剽窃检测,版权维护,代码压缩,病毒检测,bug查找等等[1,6]。所以研究重复代码对软件系统的分析极大的意义。  重复代码的研究主要有四种手段,即基于文本分析,基于词法分析,基于文法分析,基于语义分析。但是文本分析和词法分析的无法准确的识别出重复代码,而现有的文法分析和语义分析的分析技术,无论在时间,空间,结果准确性,工具可配置性,是否语言无关性,结果的表达等方面都存在缺陷。而大型的金融系统(代码行数超过500W行)对这些的要求是很高的。所以需要设计出一款时间,空间可接受的,分析的结果准确,工具有较好的交互性,工具的分析与语言无关,结果是基于分组的存储的工具是十分必要的。  为了能够快速准确的查找到各个系统的重复代码,本文提出了HTCloneDigger来帮助分析系统中的重复代码。并且从设计和算法两个角度对重复代码分析工具进行了研究,即从工程的角度分析了怎样设计重复代码分析工具使其具备语言无关性,可配置性,结果可存储性等性质;从算法的角度描述了怎样设计出分析算法,使得该重复代码分析工具具备快速,准确,可归类,可配置相似度,可模糊匹配等需求。
其他文献
随着互联网的飞速发展,信息安全技术变得至关重要。信息隐藏技术经历了十余年的研究与发展,而今越来越受到人们的关注。隐写分析和隐写术是信息隐藏技术中最为重要的两个分支
随着信息技术、脑与认知等技术的发展,有关脑科学领域的研究越来越深入,大量相关的文献资料和数据不断涌现,如何及时获取并分享这些信息成为脑科学发展中非常迫切的问题。传统信
现在大多数编程语言采用的是虚拟机的实现方式,即把源代码编译成平台无关的字节码,然后交由虚拟机解释执行这些字节码。纵观大部分编程语言的虚拟机实现方式,基本上都采用了基于
云计算是近年来IT领域的一个热门话题,普遍被业内人士认为是下一代互联网技术的基础,并将会影响到整个互联网产业的格局。当前,国内外都涌现出一批成熟的云计算产品,极大地推动了
脑-机接口(BCI)技术在大脑和外部设备之间建立直接的通讯通道,该通道跨越人体外周神经和肌肉系统,直接对外部设备进行控制,与外界环境进行交流。脑-机接口技术通常又被称为mind-
三维点云的曲面重建是计算机图形学和计算机辅助设计中的基础问题之一,在影视特效、三维游戏、三维打印、虚拟现实、数字博物馆、数字城市、逆向工程等领域有着广泛的应用。针
随着计算机技术和空间信息技术的不断发展,空间信息技术已经在众多行业得到了广泛应用。但与此同时,空间信息数据质量和数量的不断增加,给数据存储、数据检索等方面带来了巨大压
近年来,云计算技术作为移动计算、大数据技术的助推平台,开始广受平台提供方和消费方的关注,巨大的开发群体和开发投入同时促使云计算高速发展。国外的亚马逊平台通过云计算技术
互联网发展得越来越快,在线获取最新消息已经成为几乎每个互联网用户每一条都在做的事情。海量的数据也造成了严重的消息过载问题,所以用于获取信息的网站上,消息的推荐系统具有
车载自组织网络以车辆为基本信息单元,可以使车辆实时监测到其附近道路上其他车辆的相关信息,通过车与车、车与路边单元的实时信息交互来保证车辆行驶安全、规避道路拥塞和提