Compilação Generativa: Feedback do Compilador em Tempo Real Enquanto a IA Gera Código
Generative Compilation: On-the-Fly Compiler Feedback as AI Generates Code
July 15, 2026
Autores: Niels Mündler-Sasahara, Hristo Venev, Dawn Song, Martin Vechev, Jingxuan He
cs.AI
Resumo
Linguagens com semântica estática rica, como Rust, oferecem garantias mais fortes para código gerado por IA, mas seu rigor torna a geração mais difícil. Compiladores padrão podem fornecer feedback útil após a geração, mas não orientam as etapas de geração intermediárias, como aquelas durante a decodificação autoregressiva de LLMs. A decodificação restrita intervém mais cedo, rejeitando tokens inválidos durante a amostragem, mas exige acesso ao modelo em caixa-branca e uma reimplementação custosa para restrições semânticas. Apresentamos a compilação generativa, a primeira abordagem para obter feedback do compilador sobre programas parciais durante a geração. O dispositivo técnico central é um *selador*: uma transformação leve, majoritariamente guiada por sintaxe, que converte programas parciais em programas completos que compiladores padrão podem diagnosticar. Ele é projetado para que programas parciais possíveis de completar nunca sejam rejeitados, preservando contexto de código suficiente para detectar becos sem saída genuínos precocemente. Construímos tal selador sobre um cálculo central semelhante a Rust e provamos que ele satisfaz essas propriedades, tudo mecanicamente validado em Lean. Estendemos o método para o primeiro verificador de programas parciais para Rust real. Avaliamos nossa abordagem em tarefas desafiadoras de codificação Rust em nível de repositório, abrangendo tanto modelos de ponta em caixa-preta quanto de peso aberto. Mostramos que a compilação generativa reduz saídas não compiláveis e melhora a correção funcional, em comparação com o feedback padrão pós-geração. Ela faz isso detectando uma ampla gama de erros perto de sua fonte e no início da geração, reduzindo assim cascatas de erros e permitindo diagnósticos focados. De forma mais ampla, a compilação generativa é um passo para tornar os compiladores cidadãos de primeira classe da programação assistida por IA, ativos durante a geração, em vez de uma verificação separada pós-geração.
English
Languages with rich static semantics, such as Rust, provide stronger guarantees for AI-generated code, but their strictness makes generation more difficult. Off-the-shelf compilers can provide useful feedback post-generation, but does not guide intermediate generation steps, such as those during autoregressive LLM decoding. Constrained decoding intervenes earlier by rejecting invalid tokens during sampling, but requires white-box model access and costly reimplementation for semantic constraints.We introduce generative compilation, the first approach to obtaining compiler feedback on partial programs during generation. The core technical device is a sealor: a lightweight, mostly syntax-guided transformation that converts partial programs into complete ones that standard compilers can diagnose. It is designed such that possible-to-complete partial programs are never rejected, while preserving enough code context to catch genuine dead ends early. We construct such a sealor on a core Rust-like calculus and prove that it satisfies these properties, all mechanized in Lean. We extend it to the first partial-program checker for real Rust. We evaluate our method on challenging repository-level Rust coding tasks, across both frontier black-box and open-weight models. We show that generative compilation reduces non-compiling outputs and improves functional correctness, relative to standard post-generation feedback. It does so by detecting a broad range of errors close to their source and early during generation, thereby reducing errors cascades and enabling focused diagnostics. More broadly, generative compilation is a step toward making compilers a first-class citizen of AI-assisted programming active during generation, rather than a separate post-generation check.