Uma atualização rápida

Os primeiros compiladores eram de passagem única: ler o código-fonte, emitir código de máquina e esperar pelo melhor. Eles eram rápidos, mas frágeis: otimização limitada, tratamento inadequado de erros e resultados frágeis. A resposta da indústria foi o compilador multipassagem, que mudou fundamentalmente a forma como construímos linguagens. A primeira passagem analisa, analisa e produz uma representação intermediária (IR). A segunda passagem otimiza e gera o código de destino final. Essa separação de interesses foi o que nos deu C, C++, Java – e, francamente, a moderna engenharia de software como a conhecemos.

O paralelo estrutural entre a compilação clássica em duas passagens e a geração de código baseada em IA.

Criador de ondas

A analogia com a geração de código de IA é quase assustadoramente direta. As ferramentas atuais baseadas em LLM são, arquitetonicamente, compiladores de passagem única. Você alimenta um prompt, o modelo gera código e você obtém o que sai do outro lado. O teto de qualidade é o próprio modelo. Não há análise intermediária, nem aprovação de otimização, nem validação estrutural. É o design do compilador da década de 1970 com o marketing da década de 2020.

Aplicando o modelo de duas passagens à geração de código de IA

É aqui que fica interessante. E se, em vez de pedir a um LLM para ir do prompt ao código de produção de uma só vez, você dividisse o processo em duas etapas arquitetonicamente distintas – assim como os compiladores que construíram nossa indústria?