重新思考代码相似性:一种基于逻辑的框架,用于超越函数等价的跨语言分析

《ACM Transactions on Software Engineering and Methodology》:Rethinking Code Similarity: A Logic-Based Framework for Cross-Language Analysis beyond Functional Equivalence

【字体: 时间:2025年11月08日 来源:ACM Transactions on Software Engineering and Methodology

编辑推荐:

  代码相似性检测框架SimCL通过统一中间表示uIR构建统一控制流图uCFG,结合图核算法SimGK有效识别跨语言逻辑相似性,实验证明其精度、召回率与F1值均显著优于现有方法。

  

摘要

跨语言代码剽窃和漏洞传播对软件完整性构成了严重威胁,因此需要采用先进的代码相似性分析方法。传统方法主要关注功能等价性,往往忽略了更深层次的结构和算法相似性。因此,这些方法常常仅基于功能对齐就将代码片段错误地归类为相似,尽管它们在底层逻辑或算法实现上存在显著差异。为了解决这一关键问题,我们提出了SimCL,这是一种新颖的基于逻辑的跨语言代码相似性分析框架。SimCL的核心创新在于使用统一的控制流图(uCFG)表示法,该表示法源自新引入的与语言无关的统一中间表示(uIR)。这种统一的方法有助于准确识别不同编程语言之间的逻辑相似性,超越了语法和表面功能上的相似性。此外,我们还引入了SimGK,这是一种专门针对比较代码相关的uCFG而优化的图核算法。为了严格评估SimCL的性能,我们构建了两个独特的数据集:TranDataset包含逻辑和功能上相似的跨语言代码对,FuncDataset包含逻辑相似但功能不同的代码对。这些数据集通过明确区分逻辑和功能维度,弥补了现有资源的不足。全面的实验结果表明,SimCL在跨语言代码相似性检测方面显著优于现有的最先进方法,具有更高的精确度、召回率和F1分数。因此,SimCL有效解决了当前存在的问题,大幅提高了检测代码克隆和跨编程语言传播漏洞的准确性和可靠性。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号