Avanços na programação em linguagens com poucos recursos
Os avanços mais recentes nos nossos modelos reforçam as capacidades de desenvolvimento e migração de software em linguagens de programação com poucos recursos, como COBOL, Fortran e Visual Basic. Estas linguagens têm menos código e documentação disponíveis para os modelos aprenderem do que linguagens como Python e JavaScript. Ainda assim, sustentam infraestruturas críticas e serviços essenciais em todo o mundo. O COBOL sustenta(abre numa nova janela) mais de 40% dos sistemas bancários online, 80% das transações presenciais com cartão de crédito e 95% das transações em caixas automáticos, enquanto o Fortran é utilizado na previsão meteorológica(abre numa nova janela) e na análise de segurança de reatores nucleares(abre numa nova janela). Melhorar a capacidade da IA de trabalhar nestas linguagens pode ajudar as equipas a manter e modernizar o software de que dependem os serviços essenciais.
Este trabalho é orientado pelo feedback de programadores e clientes empresariais, que nos têm dito que os modelos de programação revelam frequentemente dificuldades com estas linguagens. A manutenção e modernização deste software podem ser difíceis: a documentação pode estar incompleta, os programadores originais podem ter saído da empresa e regras de negócio importantes podem existir apenas no código. Quer estejam a corrigir erros ou a migrar para outra linguagem, as equipas precisam de preservar o comportamento de que os seus sistemas dependem.
Para medir o progresso, desenvolvemos duas avaliações. O MultiLangBench testa se um modelo consegue criar de raiz um motor de base de dados compatível com SQLite em 20 linguagens de programação diferentes. A nossa avaliação de migração de COBOL testa se um modelo consegue migrar programas existentes para outra linguagem, preservando o seu comportamento. Em conjunto, testam duas competências complementares: desenvolver novo software e preservar o funcionamento do software existente.
Os nossos modelos mais recentes mostram melhorias substanciais em ambas as avaliações, com uma exatidão muito superior a um custo mais baixo.
No MultiLangBench, o GPT‑6 Astra atinge uma taxa média de sucesso nos testes de 87,4% em 20 linguagens de programação, face aos 26,8% do GPT‑5.6 Sol, com melhorias em todas as linguagens testadas. O GPT‑6 Luna também supera o GPT‑5.6 Sol, atingindo 40,3% com um custo estimado de API cerca de 78% inferior.
Na nossa avaliação de migração de COBOL, o GPT‑6.1 Sol atinge uma exatidão de 86,6% com esforço de raciocínio baixo, face a apenas 5,4% do GPT‑5.6 Sol, e custa menos 39%. Com um esforço de raciocínio mais elevado, a exatidão chega aos 97,9%, quase atingindo o limite da avaliação.
Em conjunto, estes resultados mostram que os nossos modelos estão a melhorar significativamente no trabalho com uma vasta gama de linguagens de programação, oferecendo também uma melhor relação custo-desempenho.
O MultiLangBench pede a um modelo que crie um motor de base de dados compatível com SQLite numa linguagem de programação especificada. O modelo tem de organizar uma base de código, gerir o estado, tratar erros e adicionar novas funcionalidades, preservando as existentes.
Para comparar implementações em diferentes linguagens, usamos ficheiros de base de dados como interface comum. O programa em avaliação recebe uma base de dados inicial e uma consulta SQL e produz uma base de dados modificada. Usamos a implementação de referência do SQLite para verificar se a base de dados resultante tem o conteúdo esperado. Isto permite-nos aplicar os mesmos testes independentemente da linguagem usada para criar o motor.
Adaptámos testes do conjunto de testes existente do SQLite a este formato. A avaliação mede a quantidade de funcionalidades operacionais que um modelo consegue desenvolver ao longo de uma sessão prolongada de programação, apresentando tanto a taxa de sucesso nos testes como o custo da API.
Com esforço de raciocínio máximo, o GPT‑6 Astra atinge uma taxa média de sucesso nos testes de 87,4% nas 20 linguagens, face aos 26,8% do GPT‑5.6 Sol. As melhorias abrangem todas as linguagens testadas, incluindo COBOL (de 10,9% para 72,1%), OCaml (de 25,6% para 85,8%), Fortran (de 21,4% para 83,5%) e Visual Basic (de 27,5% para 89,4%). O Astra obtém resultados superiores a 83% em 19 das 20 linguagens, sendo o COBOL ainda a mais difícil, com 72%.
O GPT‑6 Luna oferece uma opção de menor custo que também supera o GPT‑5.6 Sol em todas as linguagens testadas. Com esforço de raciocínio máximo, atinge uma taxa média de sucesso nos testes de 40,3%. As melhorias incluem COBOL (de 10,9% para 17,1%), OCaml (de 25,6% para 34,1%), Fortran (de 21,4% para 31,4%) e Visual Basic (de 27,5% para 41,6%). Estas melhorias têm um custo médio estimado de API de 0,77 USD por amostra, face aos 3,48 USD do GPT‑5.6 Sol, ou seja, cerca de 78% menos.
Estamos a disponibilizar a configuração da avaliação e o conjunto de testes do MultiLangBench no GitHub(abre numa nova janela), juntamente com os resultados de cada linguagem. Os programadores podem analisar o que a avaliação testa, rever o desempenho nas linguagens que utilizam e identificar lacunas relevantes para o seu trabalho.
A nossa segunda avaliação pede aos modelos que migrem programas COBOL para C++, Java, Kotlin, Python ou Rust, preservando o funcionamento de cada programa.
Uma migração bem-sucedida exige compreender tanto a lógica de negócio do programa como o comportamento específico da linguagem COBOL. Os programas COBOL processam frequentemente transações financeiras e registos empresariais, nos quais pormenores como as regras de arredondamento e o tratamento de registos em falta refletem requisitos de negócio. Por exemplo, a aritmética de ponto fixo do COBOL descarta as casas decimais em excesso, a menos que o arredondamento seja explicitamente solicitado. Uma versão reescrita que, em vez disso, arredonde esses valores pode ser executada sem erros, mas produzir resultados financeiros diferentes.
Para verificar se estes comportamentos são preservados, avaliamos os nossos modelos com testes ocultos que exigem uma correspondência byte a byte entre os resultados observáveis. Uma migração só é considerada bem-sucedida se passar em todos os testes. Estas capacidades de preservação do comportamento são úteis para as equipas que mantêm e modernizam sistemas mais antigos. No entanto, a sua aplicação a software em produção continua a exigir revisão por especialistas e testes que tenham em conta as regras de negócio e as dependências do sistema.
Nesta avaliação, o GPT‑6.1 Sol atinge uma exatidão de 86,6% com esforço de raciocínio baixo, face aos 5,4% do GPT‑5.6 Sol com a mesma definição, por apenas 61% do custo da API. Com um esforço de raciocínio mais elevado, a exatidão chega aos 97,9%, aproximando-se do limite da avaliação. Os resultados desta avaliação demonstram progressos no sentido de uma migração de código mais exata e económica para as equipas que modernizam o software de que as suas empresas dependem.
Estas avaliações, juntamente com o feedback direto de programadores e clientes empresariais, ajudam-nos a perceber onde os nossos modelos estão a melhorar e onde ainda ficam aquém.
O nosso objetivo é ajudar os modelos a aplicar competências de engenharia de software em mais linguagens: compreender repositórios desconhecidos, planear alterações, utilizar ferramentas de compilação, executar testes e diagnosticar e corrigir falhas.
Pode experimentar os nossos modelos mais recentes através da API em tarefas de programação nas linguagens que a sua equipa utiliza. O seu feedback sobre o que funciona, onde os modelos têm dificuldades e em que linguagens ou fluxos de trabalho devemos concentrar-nos a seguir ajuda a orientar a forma como treinamos e avaliamos os modelos, para melhor apoiar o software de que depende.





