静态语义严格的语言能为 AI 生成代码提供更强保证,也会显著增加生成难度。传统流程通常等模型输出完整程序后再运行编译器,此时反馈来得太晚。2026 年 7 月 15 日收录于 Hugging Face Daily Papers 的这项工作提出“生成式编译”,尝试让标准编译器在自回归生成尚未结束时就参与检查。

把未完成代码变成编译器能看的程序

核心装置被称为 sealor:一种轻量、主要由语法引导的转换,将部分程序临时变成完整程序,再交给现有编译器诊断。它并不是重新实现一套 Rust 语义检查器,而是尽量复用成熟编译器,同时保留足够多的上下文,以便尽早识别已经无法挽回的生成分支。

设计目标有两点:仍有可能补全的部分程序不能被误拒绝;真正的死路又应尽早暴露。作者先在一个核心 Rust 风格演算上构造 sealor,并证明其满足这些性质,相关证明全部在 Lean 中机械化完成。随后,方法被扩展为面向真实 Rust 的首个部分程序检查器。

与约束解码的差别

约束解码也会在采样阶段拒绝无效 token,但通常需要模型白盒访问;面对语义约束时,还可能需要高成本地重做检查逻辑。生成式编译则以标准编译器为反馈来源,因此可以覆盖黑盒模型场景。论文在仓库级 Rust 编码任务上测试了前沿黑盒模型和开放权重模型。相较于仅在生成结束后提供编译反馈,该方法减少了不可编译输出,并改善了功能正确性;摘要未给出具体提升幅度,因此不宜进一步量化。

我的判断

这项工作的价值不在于再造一个代码生成模型,而在于把编译器从终局验收工具前移为生成过程中的反馈组件。它尤其适合 Rust 这类静态语义丰富、错误能被编译器明确诊断的语言,也对无法访问模型内部状态的代码智能体有现实意义。

边界同样清楚:当前材料主要支持 Rust,sealor 能否低成本迁移到其他语言尚无结论;编译通过也不等于行为正确或满足仓库需求。摘要没有披露实验规模、成本和延迟,因此其工程收益还需结合完整论文与实现评估。