分享自:

RepoScope:利用调用链感知的多视图上下文进行仓库级代码生成

期刊:2026 IEEE/ACM 48th International Conference on Software Engineering (ICSE '26)DOI:10.1145/3744916.3773211

根据文档内容判断,该文档属于类型a(单一原创研究报告)。以下为学术报告:


Reposcope:基于调用链感知的多视角上下文实现仓库级代码生成

一、作者与机构
本研究由Yang Liu、Li Zhang、Fang Liu(通讯作者)等来自北京航空航天大学计算机科学与工程学院复杂关键软件环境国家重点实验室的团队主导,联合北京大学计算机学院、北京航空航天大学软件学院的研究者共同完成,发表于2026年4月12-18日的ICSE ‘26(国际软件工程会议),会议地点为巴西里约热内卢。

二、学术背景
1. 研究领域:本研究属于软件工程与人工智能交叉领域,聚焦于仓库级代码生成(repository-level code generation)任务,即基于代码仓库上下文生成符合项目语义的函数级代码。
2. 研究动机:现有基于检索增强生成(RAG)的方法存在两大局限:
- 检索上下文的相关性不足,难以捕捉仓库内丰富的结构语义(如跨文件调用关系);
- 上下文视角单一,仅依赖相似性检索或浅层结构分析(如数据流),导致生成代码与仓库规范冲突。
3. 目标:提出Reposcope框架,通过调用链预测和多视角上下文整合,提升LLM在复杂仓库环境下的代码生成能力。

三、研究方法与流程
1. 仓库结构语义图(RSSG)构建
- 对象:解析代码仓库中的三类实体(类、函数、属性)及六种关系(包含/返回/参数继承/调用/导入)。
- 方法:基于静态分析工具(PyType、Tree-sitter)构建异构有向图,并为每个实体生成嵌入向量(融合名称、签名、文档等特征)。

  1. 四视角上下文检索

    • 结构语义视角
      • *调用者检索*:通过RSSG直接获取目标函数的调用者。
      • *调用链预测*:提出启发式算法,从导入实体出发进行深度优先搜索,结合相似函数调用模式评分(公式:𝑆𝑒 = 𝛼₁·sim(𝑉𝑓,𝑉𝑒) + 𝛼₂·𝜙(∑𝛼₃𝑤𝑟)),预测目标函数可能调用的链式关系(如specparser→spec_helper→iterate_option_specs)。
    • 相似性视角
      • *相似函数检索*:基于嵌入向量匹配Top-K相似函数。
      • *相似代码片段检索*:使用滑动窗口算法分割仓库代码后检索。
  2. 结构保持的序列化算法

    • 将检索到的上下文按仓库原始层级关系组织(如类-方法嵌套),通过缩进保留结构信息,避免简单拼接导致的语义混乱。
  3. 动态提示构建策略

    • 采用两阶段token分配:先均分预算给四类上下文,再按优先级(调用链>调用者>相似函数>片段)重新分配剩余空间,最大化信息密度。

四、主要结果
1. 基准测试性能
- 在CodeEval和DevEval基准上,Reposcope的pass@1分数显著优于基线(如Claude-3.5-Haiku模型在DevEval上相对最优基线提升36.35%)。统计检验(𝑝=2.11×10⁻⁹)证实其优势具有显著性。
- 消融实验显示:移除调用链预测(w/o cc)导致性能下降7.03%,证明其对相关性提升的关键作用。

  1. 调用链预测有效性

    • 相比纯相似性检索基线(F1=0.435),Reposcope的预测F1达0.603,提升38.56%。案例显示其能准确捕捉跨文件调用链(如get_deprecated_args→iterate_option_specs),而基线因忽略结构语义仅返回局部相似片段。
  2. 泛化能力验证

    • 在API级生成任务RepoEval上,Reposcope的精确匹配(EM)分数达40.25%,相对基线提升7.33%,证明其适用于多种仓库级任务。

五、结论与价值
1. 科学价值
- 首次提出调用链感知的仓库级代码生成框架,通过RSSG和四视角上下文建模,系统性解决结构语义缺失问题。
- 提出无需训练、单次LLM调用的高效方案,为复杂仓库环境下的代码生成提供新范式。

  1. 应用价值
    • 可集成至现有工具链(如与RepoCoder结合提升5.46%生成准确率),助力开发者快速适配大型代码库。
    • 开源实现(GitHub)已支持Python和Java,潜在适配静态类型语言(如C++)。

六、研究亮点
1. 方法创新
- 调用链预测算法利用相似函数的调用模式先验,突破传统静态分析无法预测未实现函数调用的限制。
- 结构保持序列化首次在提示中保留代码层级关系,提升LLM对上下文的解析能力。

  1. 工程贡献
    • 完全基于静态分析,避免训练开销和迭代查询的低效问题,适用于工业级代码库。

七、其他发现
- 在30%低相似度任务中,Reposcope仍保持17.97%的相对优势,体现其对稀疏调用场景的鲁棒性。
- 实验发现相似性上下文(scf)的token效率最低,为后续优化指明方向。


(注:全文约1500字,严格遵循术语规范,如首次出现“repository-level code generation”时标注“仓库级代码生成”,专业名词如“pass@1”“F1”保留原表述。)

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com