赋予Token语义的代码克隆检测方法研究及应用

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:weistiger
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
代码克隆检测是软件工程领域的一项重要课题,作为基础设施支持软件质量评估、bug检测、复用检测等工作。随着软件的持续开发和发展,代码仓的体量呈现逐年增加的态势,基于Token的克隆检测方法在大型代码仓表现出良好的时间性能,因而越来越受到重视。然而,由于缺乏程序的语法及语义信息,传统基于Token的方法在差异克隆(Type-3,4)上存在检出率不高的问题。为此,本文从程序的抽象语法树(AST,Abstract Syntax Tree)中抽取Token的语法及语义信息,并发展快速且有效的差异克隆检测方法,同时相比于基于AST及PDG(Program Dependency Graph)的方法有更低的时间开销。本文主要工作和贡献如下:(1)赋予Token语义的方法设计针对传统基于Token的克隆检测方法仅利用文本信息,而缺失程序语义的问题,本文从抽象语法树入手,分别设计一种简单的语义提取方法,和另一种更为精确的语义提取方法。在简单的语义提取方法中,仅考虑程序的语法结构信息。首先生成程序的AST并对其进行规约简化;然后对位于叶子节点的每个Token,用AST路径来建立其语义信息,并将其编码为一个向量。在精确的语义提取方法中,除了包含前面的语义信息之外,还包含Token的角色和它们之间的数据依赖。首先从AST规则文件中分析Token的角色以及数据依赖关系;然后对存在数据依赖的Token生成n-grams序列,从而捕获程序的数据依赖特征。实验结果表明,简单的语义提取方法花费更少的时间提取语义信息,精确的语义分析方法相比简单方法在克隆案例中能更好地建模语义特征,检测更多的差异克隆对。(2)克隆检测方法设计及工程应用接下来,本文使用赋予语义的Token,设计全新的验证算法,提升在差异克隆上的检测效果,同时对已有Token方法的定位和过滤过程进行优化,加速克隆检测的过程。在定位阶段,对函数和类型名角色的Token建立索引表,快速定位候选代码块;在过滤阶段,根据代码块的规模、函数和类型名Token的覆盖率设计过滤策略;在验证阶段,设计多轮匹配算法计算语义Token之间的相似度,验证克隆对的真伪。实验结果表明,在业界公认的数据集BigCloneBench上,本文方法在文本差异较大的Moderately Type-3克隆上显著优于先进工具(包括SourcererCC、CCAligner、Deckard等),在差异较小的Type-1,2等克隆上与其效果相当。同时在大规模数据集上相比于AST、PDG方法呈现更好的时间性能。本方法已集成到某IT头部企业软件克隆检测项目中,用户反映良好。
其他文献
本文首先介绍了 expander,Ollivier-Ricci曲率,基本的遍历定理和熵论。随后介绍了图极限理论和图上的Liouville性质;类比Benjamini-Curien[1,Theorem 3.2]的证明,利用熵论论述了 Liouville性质和熵为零在概率意义下是等价的;说明了非负曲率下Liouville性质是概率意义下几乎处处成立的。最后,补充了Salez[2]文章的细节,特别是将所
学位
物流运输是经济和社会发展的重要驱动因素之一,而集装箱货运作为全球最先进的物流运输手段承担了全球90%的货运贸易。纷繁复杂的集装箱不利于集装箱货运的高效进行。因此,标准化模块集装箱的合理选择和有效使用是政府等相关决策机构提升整个集装箱货运体系的运作效率所面临的重要决策问题。在绿色可持续物流的发展理念下,还需要将可持续性相关的因素同时纳入到决策机制体系中。然而现有研究却缺少从可持续性角度满足当前背景下
学位
随着信息技术的发展和移动终端的进一步普及,人们的日常社交、学习和休闲娱乐活动也逐渐转移到线上。B站、抖音等社交媒体为人们提供了视频分享与消费的空间,视频消费已经成为人们日常生活的一部分。与此同时,视频制作成本的降低与制作的简便性增加使得消费者可以十分方便的制作视频并上传到社交媒体中,于是各大社交媒体平台中网红/博主大量增加。其中一部分网红/博主主要生产与发布产品为后续消费者的相关产品购买提供指导产
学位
全球经济的快速发展导致环境污染问题日趋严峻,政府监管机构、企业、消费者纷纷加入到环境保护的行列中。在学术界,污染治理已经成为环境保护领域和市场营销领域中的一个关键而紧迫的研究问题。本文注意到,在现实生活中,一些企业开始通过开发新型去污染产品来专门解决现有污染产品导致的污染排放,并在营销时选择将污染产品和去污染产品捆绑出售。然而,对于不同的产品组合,企业采用捆绑销售策略后的利润变化有所不同,最佳捆绑
学位
近些年来,区块链作为一种新兴的技术在众多领域得到了广泛应用。然而与此同时,区块链底层协议中存在的安全漏洞频繁被黑客利用,造成了巨大的经济损失。因此,针对区块链底层协议的安全性分析变得尤为重要。目前已有部分研究人员尝试利用形式化方法分析区块链底层协议的安全性,但通常在设计模型时简化了部分细节,或者预设了不合理的假设,可能导致遗漏部分攻击模式。基于拜占庭容错的PoS区块链作为一种主流的权益证明系统,旨
学位
在本文中,我们首先介绍了紧黎曼流形上的经典Cheeger常数,并说明了在迪利克雷边界条件下的Cheeger不等式的证明过程。其次,我们又介绍了符号图上对应于磁性拉普拉斯算子的Cheeger常数,它与符号图上的阻抑指数有密切的联系,我们也证明了此情形下对应的Cheeger不等式。最后,我们利用了曲率非负的复射影空间的几何性质以及Lee和Noar在一般度量空间的工作得到了复射影空间上有界的李普希兹-随
学位
在(t,n)门限秘密共享中,秘密可以被任何大于等于t个用户恢复。然而,公共网络环境下参与者发送的消息可能被攻击者截获,且合法的用户在进行秘密重构时不能确认其他参与者身份的真实性,当参与者的数量大于t时,可能会存在没有秘密分量的参与者通过收集诚实用户发送的消息恢复出秘密。为了抵御公共网络环境下的主动攻击,Harn首次提出了安全秘密共享,通过使用秘密分量的线性组合生成需要发送的拉格朗日分量消息,但是该
学位
城市文化设施布局是城市更新时期城市规划研究的重要内容之一。现有研究主要围绕特定区域或特定类型的文化设施布局特征和影响因素等方面展开,追求使用基于大样本数据的量化分析方法。但文化设施的规划建设是要创造一种基于文化认同与文化活动的混合使用模式,以实现促进城市和谐发展、增强自身竞争力的目标。鉴于此,文化设施布局的研究应当深入探讨文化认同的影响,要以实现城市设施空间和功能复合为目标研究文化设施与其他设施的
期刊
目前,移动通信网络和无线局域网已经成为生活中必不可少的一部分。为了保障移动通信网络和无线局域网的安全性,研究人员设计了各种身份认证协议以确保合法用户的安全接入。然而,很多身份认证协议在投入使用多年后仍被发现存在重大安全漏洞。因此,针对身份认证协议的安全性分析至关重要。最近,一些研究人员采用形式化方法对5G网络和无线局域网中的身份认证协议进行安全性分析。但是,这些工作在形式化建模协议交互细节、攻击者
学位
本文的主要内容分为两部分,第一部分为综述性的内容,主要介绍随机发展方程小时间大偏差原理的两种研究方法——指数等价方法和弱收敛方法。第二部分是在第一部分的基础上,基于弱收敛方法,证明两类带延迟随机微分方程的小时间大偏差原理。据我们所知,上述两类方程的小时间大偏差原理的结果是新的。正文共分为五章。第一章为绪论,叙述了小时间大偏差原理及其研究背景,概述了本文结构。第二章为预备工作,介绍小时间大偏差原理的
学位