基于多模态代码表示的代码克隆检测方法研究

来源 :上海海事大学 | 被引量 : 0次 | 上传用户:jbdh2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
代码克隆(Code Cloning)指的是字面或功能上相同的代码片段。由于很多客观的原因,诸如开发任务紧,开发人员水平有限等原因,软件项目开发人员经常通过复制粘贴代码片段来完成任务,在软件项目中产生大量的代码克隆。然而,代码克隆往往导致软件系统维护问题,诸如一处代码功能改变,但克隆的代码没有相应被修改,导致原来一致的代码功能不能一致。因此,如何自动、准确定位功能相似的软件代码成为软件分析任务中的一项挑战和研究热点。传统的代码克隆检测方法大多基于文本分析技术,通过字符串匹配等进行。作为一种人创造的高级的“语言”,代码文本在语义相近的代码克隆检测任务中,通过简单的字符串模式匹配等文本分析方法很难有理想的表现。因此代码克隆检测(Code Clone Detection)是软件工程中重要的一项任务。针对上述的研究问题,本文的工作着重在通过使用深度学习,开发出性能更好的代码克隆检测模型,并验证该模型的有效性,同时,进行分析的工作。本文中的工作具体如下:(1)首先提出基于多模态的代码表示方法在代码克隆检测任务中的应用。即用深度学习模型学习代码在文本层面(Textual)、语法表示层面(Syntactic)和程序控制流图(Control Flow Graph)层面的相似性,通过使用不同的深度学习模型来对代码进行特征抽取,能够准确地计算代码文本的相似性。(2)设计符合多模态代码表示的注意力机制。我们在多模态的代码表示方法的基础上继续优化,在不同的模态上设计相应的注意力机制,通过该机制,进一步提高代码克隆检测模型的准确性,并给出相应的数据分析。(3)设计基于Transformer模型并对代码转成抽象语法树(Abstract Syntax)Tree)的文本特征进行特征抽取方法。本文介绍了如何设计相应的Transformer网络并训练模型来提升代码克隆检测模型的性能以及代码功能分类任务的准确性。本文的主要贡献:(1)通过多模态的融合技术来综合表示代码的功能,并设计一个深度学习模型,让深度学习模型可以更准确地学习到代码文本中的重要信息,使模型达到更准确的相似性检测效果;我们将深度模型算法运用在不同的代码形式,即文本,抽象语法树以及图上,建立一种混合形态的代码表达,旨在引入更丰富的代码表达信息,使模型可以更好地学习代码的表示。对于这种多模态的代码表达,我们属于首次提出;(2)本文提出通过图卷积模型对代码片段进行语义级别的代码表示并建模,从而能够提取代码中的结构信息,增强代码表示的结构信息从而达到通过深度学习提高检测精度的目的;(3)通过使用和设计对应模态的注意力网路模型,训练相应的深度学习模型,从而使模型可以学习代码文本中重要部分的权重,提高代码克隆检测的准确性。我们研究了注意力机制在不同的代码表达形式上的作用,以及调查了注意力机制对克隆检测最终准确性产生的影响,详细介绍了在不同的代码表示中所涉及的特定形态的注意力机制。最后,以代码克隆检测作为代表性的任务,通过实验确认注意力机制对于代码分析任务的作用。本文中所涉及的实验,均通过在BigCloneBench数据集(一个Java克隆代码数据集)上验证,实验得到了目前为止最好的实验效果(STOA)。结合研究过程中缺少相应大量数据的问题,本文也提供在实验中所有使用的数据,并开源所有项目中所使用的代码和数据集。
其他文献
人像摄影是一种热门的拍摄题材,然而在很多场景下,诸多不可控因素,如背景人物众多、背景繁杂等,都会导致成片效果不尽如人意。此外,静态的图像不能像视频或动图一样表达丰富的信息,如果能使目标人物在同一张照片中反复出现,就可以通过让目标人物摆出不同的姿势来表达丰富的信息。现有的方法大多通过Photo Shop等图像后期处理软件,人为判定背景人物并进行图像复制粘贴等处理达到上述特效效果。这种方法不仅操作费时
学位
监控视频中异常事件检测旨在识别真实监控视频中出现的各种异常事件,并及时做出相应的处理,进而更好地维护社会公共安全。近年来,基于深度学习的监控视频中异常事件检测算法在提升模型检测性能上取得了较好的进展,但仍然存在监控视频中的时空冗余信息影响异常事件检测精度、正常事件和异常事件判别界限不清晰等问题。因此,监控视频中异常事件检测仍然是一项具有挑战性的课题。鉴于此,本文提出了基于记忆引导注意力的无监督异常
学位
作为对地观测技术的重要组成部分,遥感图像分类已被广泛应用于国防和民生经济等领域。传统的图像分类算法难以准确描述高分辨遥感图像丰富的空间细节和语义信息,分类精度不高,难以满足下游任务中信息分析和情报提取的需求。近年来,以卷积神经网络为代表的深度学习技术,凭借其优秀的表征学习能力,为遥感图像分类任务带来了性能上的巨大提升;但在资源受限的终端,卷积神经网络的庞大参数和计算量为模型高效实时部署带来了巨大挑
学位
互联网技术的高速发展将我们带入了一个全新的信息时代,信息化的时代里信息具有巨大的经济价值和战略价值,因此对于信息的保护变得至关重要。在诸如工业信息系统这样由信息驱动的系统中,任何机密的信息都不应该被不具备相应权限的用户(称入侵者)获得。非干涉性概念的提出就是为了避免系统内产生任何的信息泄露,防止入侵者获取系统内的机密信息。现有对非干涉性的研究还存在着一些局限性:一是大多数研究基于普通Petri网开
学位
以学术时评的形式,围绕2022年卡塔尔世界杯的办赛特征和重要方面,把握世界足坛新格局新变化,触动体育学术研究与实践思路。透视卡塔尔世界杯吉祥物、开幕式、主题曲的文化传播特征,理解办赛文化的全球本土化模式,以全球化的表达方式,诉说本土化的文化主张。洞悉计算机技术辅助比赛判罚全覆盖,批判性思考人工智能应用的伦理风险。世界足坛新格局呈现兼收并蓄的历史性过程,未来强队将是技术足球、整体足球、科技足球的完美
期刊
近年来,国际足联腐败问题严重,引起各方重视。美国与瑞士采取联合行动抓捕多名国际足联官员,将国家司法介入国际足联腐败问题的议题推向高潮。肯·本辛格所著《红牌:美国如何成为世界上最大体育丑闻的吹哨人》一书详细披露了美国调查国际足联腐败案件的实践过程,并做了深入的理论分析。通过对该书的述评,着重探究司法介入国际足联腐败案的背景、贡献与走向。美国依据法律从最初的调查过程到委托瑞士警方抓捕、引渡至美国并最终
期刊
典型地海背景红外辐射传输特性的深入研究,对我国的军用、民用、遥感探测等领域均有着巨大的实用性和理论意义。军事方面,针对各种典型地表和海洋的红外辐射特性的探索,有助于提高探测器或武器在不同环境下适应度和目标甄别速度。从而快速和精准地进行对象识别与跟踪打击。在遥感领域,通过对比不同地表的红外辐射特性,可以提高检测效率、精准度,科学高效地预警灾害发生,保护人民财产安全并减少经济损失。在民用方面,通过实施
学位
经典数字图像处理技术已经在日常生活中发挥了重要作用,例如商品识别、自助付款、车辆识别、刷脸解锁、刷脸支付和自动驾驶。然而图像数量的增长以及分辨率的提高给经典数字图像处理技术的存储和计算带来了严峻挑战。量子图像处理技术结合了量子计算与经典数字图像处理技术,利用量子叠加和量子纠缠等性质改善经典数字图像处理技术的计算效率和存储能力。按照图像初级处理到图像高级处理的顺序,本文依次研究了量子图像空间域滤波算
学位
高架道路作为城市交通走廊具有十分重要的骨干作用,高架道路的交通异常和交通事故往往会诱增道路服务水平的恶化。对于高架道路异常以及事故风险等问题,以往的研究一般都是基于静态交通事故数据的统计分析,然而其在交通异常和交通事故实时检测的实时性相对较差,而且在道路交通事故风险评估上往往还需要更多的数据支撑。本文首先通过研究高架道路的交通异常、交通事故和交通状态的特征,然后提出了一系列深度学习的解决方法来实现
学位
相较于全监督语义分割,弱监督语义分割能仅利用图像级别的类别标注来预测图像中像素的类别,节省了大量的人力和时间的开销。目前的弱监督语义分割算法主要是一个三个步骤的过程,首先利用图像级标签训练一个分类网络、之后通过解析该分类网络的内部参数来生成伪标签、最后用利用伪标签训练一个端到端的语义分割网络。然而目前的算法还与全监督的语义分割算法之间有着较大的差异,导致这种差异的主要原因来自于三个方面:伪标签缺失
学位