计算机科学与探索

北大核心,INSPEC,JST,CSCD,WJCI

国内刊号:11-5602/TP

国际刊号:1673-9418

计算机科学与探索杂志2020年第10期:基于程序向量树的代码克隆检测

发布日期:

作者:曾杰,贲可荣,张献,李晓伟,周全

单位:1. 海军工程大学 电子工程学院,武汉 4300332. 北京京航计算通讯研究所,北京 1000743. 武汉大学 计算机学院,武汉 430072

关键词:代码克隆,代码克隆检测,抽象语法树(AST),程序向量树

代码克隆能够加速软件开发但是也会导致缺陷重复发生和软件质量问题。部分类型的代码克隆在字面上相似度低,导致识别困难。针对这一问题,提出一种基于程序向量树的代码克隆检测方法。首先,基于统计语言模型抽取词法单元的特征表示,分析不同字面单词之间的语义相似性;接着,通过语法分析提取程序的抽象语法树(AST),为叶子节点赋予对应字面单词的特征表示,将抽象语法树转化为程序向量树;最后,提出一种加权编码规则,在考虑区分不同树节点重要程度的基础上,将程序向量树编码为定长向量,而具有相似向量表示的代码片段被判定为代码克隆。实验结果表明,在真实代码克隆的大规模标准数据集BigCloneBench上,针对在字面上相似度较低的Moderately Type-3和Type-4类型克隆进行检测时,该方法均优于当前的主流方法,包括NiCad、Deckard、SourcererCC和Oreo等,证实了该方法的有效性。

来源:2020年第10期

《计算机科学与探索》期刊编辑部

查看计算机科学与探索杂志2020年第10期

联系我们

  • 地址:北京市海淀区北四环中路211号
  • 电话:(010)89056056
  • E-mail:fcst@vip.163.com

咨询工作人员