文章主要内容总结
本文介绍了一个名为CORE的高质量、人工验证的基准测试集,旨在评估大型语言模型(LLMs)在基础静态分析任务中的代码语义推理能力。该基准涵盖数据依赖、控制依赖和信息流三大核心静态分析任务,包含12,553个任务实例,涉及C/C++、Java、Python三种编程语言,均来自180个经过语义感知多样化采样的程序。
研究团队对10个主流LLM(包括6个推理型模型和4个非推理型模型)进行了评估,主要发现包括:
- 推理型模型在多数任务上显著优于非推理型模型,性能差距为5.2%-31.5%,其中Gemini 2.5 Pro整体表现最佳;
- 模型在简单依赖识别任务(如判断两个程序元素是否存在依赖)上表现较好,F1分数达68.9%-92.56%;
- 模型在需要深层语义理解和多步推理的任务(如生成依赖轨迹、枚举依赖源)上表现较差,分数常低于50%;
- 复杂控制结构、长函数体、反向依赖模式等因素会导致模型性能显著下降,最大差距达49.5%。
创新点
- 首个针对LLM代码语义推理的细粒度基准:CORE填补了现有基准的空白,不再仅评估端到端任务结果(如代码生成或修复的正确性),而是直接聚焦于LLM对程序语义(数据依赖、控制依赖、信息流)的深层推理能力。
- 语义感知的多样化采样策略:通过基于程序结构覆盖和依赖深度的采样方法,确保任务实例的语义多样性和推理复杂度,避免表面模式重复。
- 全