多语言代码克隆检测器的开发与基准评测
软件工程
2024-09-18 v2
摘要
编程语言的多样性日益增长,使得代码克隆检测器的语言可扩展性变得至关重要。然而,这对大多数现有的克隆检测器来说具有挑战性,因为源代码处理器需要修改,这需要目标语言的专业级知识且耗时。多语言代码克隆检测器通过仅提供目标语言的语法信息,使得添加新语言支持变得更容易。为了解决现有多语言检测器在语言可扩展性和检测性能方面的不足,我们提出了一种基于 ANTLR 解析器生成的多语言代码块提取方法,并实现了一个多语言代码克隆检测器 (MSCCD),它支持当前数量最多的语言,并具备检测 Type-3 代码克隆的能力。我们遵循先前研究的方法来评估 Java 语言的检测性能。与十个最先进的检测器相比,MSCCD 的性能处于平均水平,同时它支持的语言数量显著更多。此外,我们提出了第一个基于 CodeNet 数据库的多语言语法代码克隆评估基准。我们的结果表明,即使应用相同的检测方法,性能也可能因所研究的源代码语言而异。总体而言,在考虑检测性能和语言可扩展性时,MSCCD 是评估工具中最均衡的一个。
引用
@article{arxiv.2409.06176,
title = {Development and Benchmarking of Multilingual Code Clone Detector},
author = {Wenqing Zhu and Norihiro Yoshida and Toshihiro Kamiya and Eunjong Choi and Hiroaki Takada},
journal= {arXiv preprint arXiv:2409.06176},
year = {2024}
}
备注
This paper is accepted for publication in The Journal of Systems & Software