中文

Gitor:通过构建全局样本图实现可扩展的代码克隆检测

软件工程 2023-11-21 v2

摘要

代码克隆检测旨在找出相似的代码片段,因对软件维护与演化十分重要,在软件工程中备受关注。研究者已提出许多源代码克隆检测的技术与工具,但现有检测方法侧重于单独分析或处理代码样本,未探索代码样本间的潜在关联。本文提出Gitor以捕获不同代码样本间的潜在关联。具体而言,给定源代码数据库,我们首先对所有代码样本进行分词以提取预定义的个体信息。获得所有样本个体信息后,我们利用它们构建一个大型全局样本图,其中每个节点是一个代码样本或一类个体信息。随后我们在全局样本图上应用节点嵌入技术以提取所有样本的向量表示。收集所有代码样本向量后,我们可简单比较任意两样本间的相似度来检测可能的克隆对。更重要的是,由于所得样本向量来自全局样本图,我们可将其与样本自身的代码特征结合以提升代码克隆检测性能。为证明Gitor的有效性,我们在广泛使用的数据集BigCloneBench上评估它。实验结果表明,与现有最先进(SOTA)工具相比,Gitor在代码克隆检测上精度更高,且对不同规模输入具有优异的执行时间。此外,我们也评估了Gitor与其他传统基于向量的克隆检测方法的结合,结果显示使用Gitor能使它们以更高F1检测到更多代码克隆。

关键词

引用

@article{arxiv.2311.08778,
  title  = {Gitor: Scalable Code Clone Detection by Building Global Sample Graph},
  author = {Junjie Shan and Shihan Dou and Yueming Wu and Hairu Wu and Yang Liu},
  journal= {arXiv preprint arXiv:2311.08778},
  year   = {2023}
}

备注

12 pages, 5 figures