重新思考代码相似性:一种基于逻辑的框架,用于超越函数等价的跨语言分析
《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号