arrow
返回

Code2Img: Tree-Based Image Transformation for Scalable Code Clone Detection

delete2023-09-01
delete5
PRE
AI
Y
Yutao Hu
Y
Yilin Fang
Y
Yifan Sun
Y
Yaru Jia
Y
Yueming Wu *
D
Deqing Zou
金
金海 (Hai Jin)
DOI:10.1109/TSE.2023.3295801delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
代码克隆检测是软件工程的一个活跃的研究领域。克隆检测有两个核心需求: 可扩展的检测和复杂的克隆检测。对于可伸缩检测,现有方法将源代码视为文本或令牌序列,然后计算它们的相似性。然而,由于缺乏对代码结构的考虑,基于文本和基于令牌的方法难以检测复杂的克隆类型。基于代码的中间表示的方法可以有效地实现复杂的克隆类型检测,但是受到表示的复杂性的限制,无法扩展。在本文中,我们提出了一种基于树的代码克隆检测器Code2Img,它在有效检测复杂克隆的同时满足了可伸缩性。给定源代码,我们首先通过倒排索引执行克隆过滤以定位可疑克隆。对于每个可疑克隆,我们基于标准化抽象语法树 (AST) 的邻接矩阵创建邻接图像。然后,我们设计了一个图像编码器,以进一步突出结构细节并细化图像的像素。具体来说,我们采用马尔可夫模型将邻接图像编码为状态概率图像,并删除其无用的像素。通过这种方式,可以将原始复杂树转换为一维向量,同时保留AST的结构特征。最后,我们通过计算这些向量的Jaccard相似度来检测克隆。我们与其他八个最先进的克隆检测器 (SourcererCC、NIL、LVMapper、Nicad、Siamese、CCAligner、dekard和Yang2018) 进行了有效性和可扩展性的比较评估。实验结果表明,在检测有效性和可扩展性方面,Code2Img在所有比较工具中都达到了最佳性能。这表明Code2Img可以适用于可扩展的复杂克隆检测。
Keyword:
Code clone
clone detection
scalability

期刊

IEEE Transactions on Software Engineering 封面图
IEEE Transactions on Software Engineering
IF:
5.6
论文数:
2.9K
被引数:
1.1W

机构

N
Nanyang Technological University
学者数:
4.9W
论文数: 4.8W
被引数: 8.1W
引用论文

引用论文

err分享
err收藏
LVMapper: A Large-Variance Clone Detector Using Sequencing Alignment Approach
err2020-01-01
err20
errOAAI
errWu, Ming; Wang, Pengcheng; Yin, Kangqi; Cheng, Haoyu; Xu, Yun; Roy, Chanchal K.
err分享
err收藏
Comparison and evaluation of clone detection tools克隆检测工具的比较与评价
err2007-09-01
err510
errOAAI
errBellon, Stefan; Koschke, Rainer; Antoniol, Giuliano; Krinke, Jens; Merlo, Ettore
err分享
err收藏
学者 查看更多内容