Auto-SPT:代码语义保持变换的自动化
Auto-SPT: Automating Semantic Preserving Transformations for Code
AI 导读
研究者提出 Auto-SPT 框架,用 LLM 自动生成保持语义的代码变换,实验显示这类变换能显著降低最先进代码克隆检测器的性能。代码克隆检测判断两段代码是否语义等价,是漏洞与恶意软件检测等安全任务的基础组件,但现有模型多用干净的结构化代码训练,而真实代码常经历重构、压缩、自动格式化和编译器优化等语义保持变换。Auto-SPT 构建在 LLM 之上,让模型设计多样的语义保持变换、生成实现并加以组合,形式化分析表明变换多样性影响组合强度。实验还显示 Auto-SPT 生成的变换比现有方法更多样,将这类变换加入训练数据,可训练出对真实和对抗性代码变换更鲁棒的克隆检测模型。