arrow
返回

Metrics-First, Language-Aware Clone Type Recognition: Auditable Signals Across C, C#, Java, and Python

delete2026-05-01
delete0
PRE
AI
P
Panchal, Nikunj
Q
Qayum, Abdul
A
Abdul Shahid
A
Abdul Razzaq *
DOI:10.1002/smr.70124delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
现代代码克隆研究已主要集中于强大的端到端检测器,但实践者仍缺乏关于哪些具体代码特征能最佳区分克隆类型以及这些信号是否跨语言转移的可审计指导。我们并未构建新的检测器,而是聚焦于克隆类型识别的度量级可解释性,考察哪些代码级相似性度量(涵盖词法、结构、语义和行为类别)最能区分语法(T1/2)、类型3和类型4克隆,以及这些度量跨语言的稳定性和鲁棒性。我们应用GPTCloneBench对C、C#、Java和Python的语内配对计算每对20个度量、格式不变的表示。结构视图源自Tree-sitter AST/图;语义视图源自CodeBERT/CodeT5和CodeBLEU;轻量行为代理捕获决策路径重叠。我们采用嵌套设计:RFECV在训练折内选择特征,四个表格学习器(随机森林、XGBoost、AutoGluon-Tabular、TabPFN)按语言用宏观-F1和准确率评估,并采用非参数检验(Friedman Wilcoxon+Holm)、效应量和特征稳定性分析(选择频率和Top-Jaccard)。一个紧凑的混合类别核心(TF-IDF、-gram Dice、AST形状相似性、CodeBERT嵌入)在不同语言中一致主导了大部分判别信号(Top-5互信息[MI]占比0.58-0.65;Top-5 Jaccard稳定性0.63-0.72;低冗余)。在所有学习器中,TabPFN整体宏观-F1最高(72.44%),在C和C#中统计显著,并在Java中领先;AutoGluon在Python中最佳(69.10%)。类型3仍是持续瓶颈,而类型4在语义特征占主导时往往超过T3。跨语言差异有限(10.67个百分点),C#表现最佳,Python最低。一个小型、可审计的度量组合结合现代表格学习器提供了可解释的、语言感知的克隆类型识别。结果表明(i)识别了稳定、跨语言的度量子集,(ii)量化了语义何时优于结构(T4>T3),以及(iii)提供了实用模型指导(静态类型语言用TabPFN;动态类型语言用异构集成)。配套工件支持精确复现,并支持未来以度量优先优化T3敏感信号。
Keyword:
clone type classification
code clones
machine learning
multi-language analysis
similarity metrics
software engineering

期刊

J
Journal of Software-Evolution and Process
IF:
1.8
论文数:
69
被引数:
1.5K

机构

U
university of limerick
学者数:
1.2K
论文数: 580
被引数: 0
引用论文

引用论文

暂无论文信息