返回
Building global sample graph for effective code clone detection
DOI:10.1016/j.jss.2026.113117.png)
摘要
En 中文
代码克隆检测旨在识别相似的代码片段,对于软件维护和演化具有重要意义。现有的代码克隆检测技术已取得令人鼓舞的结果,但大多数技术仅单独分析代码样本,未明确利用代码样本之间的潜在关联。本文提出Gitor来捕获这些关联以进行克隆检测。具体而言,给定一个代码数据库,我们首先对代码样本进行词元化以提取个体信息(i.e. 关键词和代码度量)。然后构建一个全局样本图,其中每个节点表示一个代码样本或一种个体信息类型。基于该图,我们应用节点嵌入以获得代码样本的向量表示。随后,我们可通过计算余弦相似度高效检测克隆对,或将这些向量输入神经网络分类器以识别复杂的语义克隆。我们在广泛使用的基准数据集上进行了实验,并将Gitor与流行的克隆检测器和基于深度学习的方法(包括新提出的基准CC2Vec)以及基于LLM的方法进行了比较。实验结果表明,Gitor实现了0.99的F1分数,并优于对比的基于深度学习的检测器。在可扩展性方面,Gitor在一百万对代码上完成克隆检测,运行时间相比基准ASTNN减少了95%以上。此外,多个代码度量的实验显示,大多数度量组合在中等阈值下精度超过0.90,表明代码度量能有效促进克隆检测。
期刊
IF:
4.1
论文数:
5.5K
被引数:
8.4K
机构
引用论文
暂无论文信息

