HyClone: 桥接 LLM 理解与动态执行以实现语义代码克隆检测.pdfVIP

  • 2
  • 0
  • 约2.02万字
  • 约 14页
  • 2026-03-09 发布于北京
  • 举报

HyClone: 桥接 LLM 理解与动态执行以实现语义代码克隆检测.pdf

HyClone:桥接LLM理解与动态执行以实现语义代

码克隆检测

YunhaoLiang,RuixuanYing,TakuyaTaniguchi,GuwenLyu,andZhe

Cui

UniversityofChineseAcademyofSciences,Beijing101408,China

InstituteofMultidisciplinaryResearchforAdvancedMaterials(IMRAM),Tohoku

UniversitySendai980-8577,Japan

liangyunhao22@mails.ucas.ac.cn,ying.ruixuan.s5@dc.tohoku.ac.jp

译摘要代码克隆检测是软件工程中的一个关键任务,旨在识别软件系统内

中部或跨系统之间的重复或相似的代码片段。传统方法通常无法捕捉功能等

1价性,特别是对于语义克隆(第四类),其中代码片段尽管语法结构不同但

v实现了相同的功能。大型语言模型(LLMs)在理解代码语义方面显示出潜

7力。然而,直接将LLM应用于代码克隆检测会因对语法差异的敏感性而导

5

3致次优结果。为了解决这些问题,我们提出了一种新颖的两阶段框架,该

1框架结合了基于LLM的筛选与执行验证以检测Python程序中的语义克

0

.隆。在第一阶段,一个LLM评估代码对以根据语义分析过滤出明显的非克

8

0隆。对于未被识别为克隆的对,在第二阶段采用基于执行的验证方法,利

5用LLM生成的测试输入通过交叉执行验证来评估功能等价性。我们的实

2验评估表明与直接使用基于LLM的检测相比在精度、召回率和F1分数方

:

v面有显著改进,突显了该框架识别语义克隆的有效性。未来工作包括探索

i

x跨语言代码克隆检测以及优化框架以适用于大规模应用。

r

a

Keywords:代码克隆检测·软件工程·大型语言模型。

1介绍

代码克隆检测是软件工程中的一项关键任务,旨在识别软件系统内部或

跨软件系统的重复或相似代码片段[7]。这样的克隆通常由复制粘贴操作或

独立实现相似功能引起,会对软件维护、质量和安全产生显著影响[5,9]。例

如,重复的代码会通过需要同时更新多个代码段而增加维护成本,而未被检

测到的克隆可能会传播错误或在开源或学术环境中促进剽窃行为。在各种类

型的代码克隆中,语义克隆(第4类),其中代码片段实现相同的功能尽管

2F.Authoretal.

其句法结构不同,由于依赖于功能等价而非文本或结构相似性,构成了一个

特别具有挑战性的问题[1]。

传统的代码克隆检测方法,如基

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档