近日,2019级博士生胡雨涛(导师邹德清教授)的论文“Code2Img: Tree-based Image Transformation for Scalable Code Clone Detection”被 IEEE Transaction on Software Engineering(TSE) 录用。
代码克隆检测是软件工程中一个活跃的研究领域。克隆检测有两个核心需求:大规模代码克隆检测和复杂克隆检测。在大规模克隆检测方面,现有方法将源代码视为文本或token序列后计算它们的相似度,但由于缺乏对代码结构的考虑,难以检测复杂克隆类型。基于代码中间表示的方法可以有效检测复杂克隆,但受限于中间表示的复杂性而难以支持大规模克隆检测。为此,文章提出了一种基于树的代码克隆检测器Code2Img,在满足大规模克隆检测的同时能够有效检测复杂克隆。Code2Img首先通过倒排索引进行克隆过滤,定位可疑克隆对。对于可疑克隆对,基于抽象语法树(Abstract Syntax Tree,AST)的邻接矩阵创建邻接图像。然后,设计一个图像编码器来进一步突出结构细节并优化图像素。由此,在保留AST结构特征的同时,可以将树转化为一维向量。最后,通过计算向量的Jaccard相似度来检测克隆。实验结果表明,Code2Img在检测效果和可扩展性方面都取得了最佳性能,对于Moderately Type-3(MT3) 克隆类型的检测比8个对比工具( CCAligner、SourcererCC、Siames、NIL、Nicad、LVMapper、Deckard、Yang2018)提高8%,同时能够在1h38m内对100M行代码完成克隆检测。
IEEE Transaction on Software Engineering是软件工程领域最权威的国际学术期刊之一,主要关注软件开发和维护、软件测试和验证、软件项目管理等前沿研究。2022年影响因子为9.322,属于CCF推荐A类期刊,也是中科院一区期刊。
(通讯员:胡雨涛)