生成式编译:AI生成代码时的即时编译器反馈

Hugging Face Daily Papers 论文

摘要

本文介绍了生成式编译,一种在AI生成代码过程中获取部分程序编译器反馈的方法,利用“sealor”变换使得标准编译器能够诊断不完整的代码。在Rust编码任务上的评估表明,该方法通过及早捕获错误,减少了无法编译的输出并提高了功能正确性。

具有丰富静态语义的语言(如Rust)为AI生成的代码提供了更强的保证,但其严格性使得生成更加困难。现成的编译器可以在生成后提供有用的反馈,但无法指导中间生成步骤,例如自回归LLM解码过程中的步骤。约束解码通过拒绝采样过程中的无效令牌来更早地介入,但需要白盒模型访问,并且为了实现语义约束需要昂贵的重新实现。我们引入了生成式编译,这是第一种在生成过程中获取部分程序编译器反馈的方法。核心技术设备是sealor:一种轻量级、主要基于语法指导的变换,将部分程序转换为标准编译器可以诊断的完整程序。它的设计使得可能完成的部分程序永远不会被拒绝,同时保留足够的代码上下文以便及早捕获真正的死路。我们在一个类似Rust的核心演算上构造了这样一个sealor,并证明它满足这些性质,所有这些都在Lean中机械化实现。我们将其扩展到针对真实Rust的第一个部分程序检查器。我们在具有挑战性的仓库级Rust编码任务上评估了我们的方法,涵盖了前沿黑盒模型和开放权重模型。我们表明,与标准的生成后反馈相比,生成式编译减少了无法编译的输出并提高了功能正确性。它通过在生成过程中及早且接近错误源头检测广泛的错误来实现这一点,从而减少错误级联并提供有针对性的诊断。更广泛地说,生成式编译是朝着使编译器成为AI辅助编程在生成过程中的一等公民迈出的一步,而不是一个独立的生成后检查。
查看原文
查看缓存全文

缓存时间: 2026/07/16 21:45

论文页面 - 生成式编译:AI生成代码时的即时编译器反馈

来源:https://huggingface.co/papers/2607.13921 发布于 7月15日

·

提交者 https://huggingface.co/nmuendler

Niels (https://huggingface.co/nmuendler)于7月16日

摘要

具有丰富静态语义的语言(如Rust)为AI生成代码提供了更强的保证,但其严格性也使得生成变得更加困难。现成的编译器可以在生成后提供有用的反馈,但无法指导中间生成步骤(例如自回归LLM解码过程中的步骤)。受约束的解码通过在采样过程中拒绝无效token来更早介入,但需要白盒模型访问,并且为语义约束重新实现的成本高昂。我们引入了生成式编译(generative compilation),这是第一种在生成过程中获取部分程序编译器反馈的方法。核心技术手段是sealor:一种轻量级、主要由语法引导的转换,它将部分程序转换为完整程序,标准编译器可以对这些完整程序进行诊断。它的设计使得可完成的部分程序永远不会被拒绝,同时保留足够的代码上下文以尽早捕获真正的死胡同。我们在类似Rust的核心演算上构建了这样的sealor,并证明它满足这些性质,所有证明均在Lean中机械化实现。我们将其扩展到第一个用于真实Rust的部分程序检查器。我们在具有挑战性的仓库级Rust编码任务上评估了我们的方法,涉及前沿黑盒模型和开放权重模型。我们表明,与标准的生成后反馈相比,生成式编译减少了非编译输出并提高了功能正确性。它通过在生产过程中及早检测接近错误源的广泛错误类型来实现这一点,从而减少错误级联并实现有针对性的诊断。更广泛地说,生成式编译是朝着让编译器成为AI辅助编程的一等公民(在生成过程中主动参与,而非作为单独的生成后检查)迈出的一步。

查看 arXiv 页面 (https://arxiv.org/abs/2607.13921)查看 PDF (https://arxiv.org/pdf/2607.13921)GitHub (https://github.com/eth-sri/generative-compilation)添加到收藏 (https://huggingface.co/login?next=%2Fpapers%2F2607.13921)

引用本文的模型0

没有模型链接此论文

请在模型 README.md 中引用 arxiv.org/abs/2607.13921,以便从此页面链接。

引用本文的数据集2

eth-sri/CRUST-bench 查看器•更新于 28分钟前 • 117 (https://huggingface.co/datasets/eth-sri/CRUST-bench)

eth-sri/API-Upgrade 查看器•更新于 28分钟前 • 34 (https://huggingface.co/datasets/eth-sri/API-Upgrade)

引用本文的 Spaces0

没有 Space 链接此论文

请在 Space README.md 中引用 arxiv.org/abs/2607.13921,以便从此页面链接。

包含本文的收藏集1

相似文章

AI生成代码的质量

Reddit r/AI_Agents

这篇文章讨论了一个担忧:随着AI工具生成越来越多的代码,未来基于这些合成代码训练的模型可能会质量下降、原创性降低,并询问像OpenAI、Anthropic和GitHub这样的主要AI实验室计划如何应对这个问题。

用AI写更好的代码,但更慢

Lobsters Hottest

Nolan Lawson认为,AI编程助手可以通过使用多个模型进行彻底的代码审查和漏洞检测,从而更慢地编写高质量代码,提升代码库的健康状况,而不是最大化输出速度。