-
题名基于程序向量树的代码克隆检测
被引量:6
- 1
-
-
作者
曾杰
贲可荣
张献
李晓伟
周全
-
机构
海军工程大学电子工程学院
北京京航计算通讯研究所
武汉大学计算机学院
-
出处
《计算机科学与探索》
CSCD
北大核心
2020年第10期1656-1669,共14页
-
文摘
代码克隆能够加速软件开发但是也会导致缺陷重复发生和软件质量问题。部分类型的代码克隆在字面上相似度低,导致识别困难。针对这一问题,提出一种基于程序向量树的代码克隆检测方法。首先,基于统计语言模型抽取词法单元的特征表示,分析不同字面单词之间的语义相似性;接着,通过语法分析提取程序的抽象语法树(AST),为叶子节点赋予对应字面单词的特征表示,将抽象语法树转化为程序向量树;最后,提出一种加权编码规则,在考虑区分不同树节点重要程度的基础上,将程序向量树编码为定长向量,而具有相似向量表示的代码片段被判定为代码克隆。实验结果表明,在真实代码克隆的大规模标准数据集BigCloneBench上,针对在字面上相似度较低的Moderately Type-3和Type-4类型克隆进行检测时,该方法均优于当前的主流方法,包括NiCad、Deckard、SourcererCC和Oreo等,证实了该方法的有效性。
-
关键词
代码克隆
代码克隆检测
抽象语法树(AST)
程序向量树
-
Keywords
code clone
code clone detection
abstract syntax tree(AST)
program vector tree
-
分类号
TP391
[自动化与计算机技术—计算机应用技术]
-
-
题名基于程序向量树和聚类的学生程序算法识别方法
被引量:2
- 2
-
-
作者
魏敏
张丽萍
闫盛
-
机构
内蒙古师范大学计算机科学技术学院
-
出处
《计算机工程与设计》
北大核心
2022年第10期2790-2798,共9页
-
基金
国家自然科学基金项目(61462071)
内蒙古自然科学基金项目(2018MS06009、2021LHMS06012)
+2 种基金
内蒙古师范大学自主科研基金项目(29K19ZZYF017)
内蒙古自治区高等学校科学研究基金项目(NJZY21560)
内蒙古师范大学研究生科研创新基金项目(CXJJS20126)。
-
文摘
为准确识别出使用相同算法的学生程序,提出基于程序向量树和聚类的学生程序算法识别方法。解析程序生成单词序列和抽象语法树,获取程序词法和语法结构信息;利用word2vec模型学习程序单词向量表示,构造程序向量树融合程序特征;采用递归自动编码器模型获取程序向量,执行k-means聚类,将使用相同算法的程序按照特征表示相近程度划分到相同类别,完成算法识别任务。实验结果表明,该方法可以有效获取程序重要特征,具有较好的算法识别准确度。
-
关键词
算法识别
程序向量树
相似性检测
词向量
聚类
-
Keywords
algorithm recognition
program vector tree
similarity detection
word vector
clustering
-
分类号
TP311.5
[自动化与计算机技术—计算机软件与理论]
-