SOFTWARE

Canonical quer transformar código C em Rust seguro com ajuda da IA

A dona do Ubuntu está a financiar um doutoramento em Bristol para testar, com calma académica, se modelos de linguagem conseguem migrar grandes bases de C para Rust sem partir tudo.

Canonical quer transformar código C em Rust seguro com ajuda da IA

A Canonical continua a apostar forte em Rust e em IA, mas desta vez não é com mais um anúncio de produto. A empresa que está por trás do Ubuntu decidiu co-financiar um projecto de doutoramento de três anos na Universidade de Bristol para responder a uma pergunta concreta: é possível usar modelos de linguagem para traduzir grandes bases de código em C para Rust seguro, correcto e minimamente legível?

O investimento foi detalhado por Jon Seager, vice-presidente de engenharia da Canonical, num longo post no Discourse do Ubuntu. O trabalho será conduzido pelo Programming Languages Research Group de Bristol, gente que vive para tipos, compiladores e provas de correcção. Ou seja, não é a típica demo de marketing com “IA” colada em cima, é investigação académica com financiamento industrial a tentar perceber se a ideia aguenta contacto com código real.

Contexto: sob a batuta de Seager, o Ubuntu 25.10 já trouxe uma implementação de sudo em Rust e os uutils coreutils escritos em Rust. Ambos são reimplementações feitas por humanos, a partir do zero, para imitar as ferramentas clássicas em C. É precisamente o oposto do que este novo projecto quer testar. Aqui a premissa é pegar em programas com “centenas de milhares de linhas de C” e usar IA para os decompor em componentes menores, depois reescrever cada peça em Rust seguro e comportamentalmente equivalente.

Ferramentas automáticas de tradução C→Rust já existem e, em geral, não convencem. Traduzem sintaxe quase 1:1, despejam blocos inteiros em unsafe e produzem código que compila mas que nenhum programador Rust quer manter. Seager aponta isto frontalmente. O objectivo não é ter Rust com cheiro a C, é chegar a algo que um maintainer Rust aceite viver com ele. A fasquia é alta e é bom que seja. Depois das promessas demasiado cor-de-rosa em torno de IA a escrever software, alguma prudência técnica faz falta, como já se viu com ferramentas tipo Codex e derivados.

Há um ponto particularmente sensato no plano: reconhecer que bases de código maduras carregam conhecimento implícito, acumulado em décadas de correções de cantos obscuros que nunca ficaram em especificação nenhuma. Joel Spolsky escreveu sobre isto há mais de vinte anos em “Things You Should Never Do”. Reescrever tudo de raiz costuma deitar esse conhecimento fora. Uma abordagem que parte do código existente, tenta compreendê-lo e migrá-lo com suporte formal e testes pode ser menos glamorosa, mas tem mais hipótese de não rebentar com sistemas em produção.

Para quem desenvolve em Portugal, a relevância é óbvia. Bancos, telecoms, saúde, Estado, todos têm C velho e nervoso a correr em algum lado, muitas vezes sem equipa original por perto. Ninguém vai apontar um modelo de linguagem genérico ao core bancário e carregar em “traduzir para Rust”. Mas se este tipo de trabalho académico produzir ferramentas que ajudem a analisar, segmentar e migrar pedaços críticos com mais segurança e menos trabalho manual, já muda a conversa. Entre o hype de “IA escreve o teu software” e o cepticismo total, este projecto tenta abrir um caminho no meio. E é aí que as coisas costumam ficar interessantes.

Fonte: The Register

Newsletter

Os artigos que importam, duas vezes por semana.

Terça e sexta, cinco minutos de leitura. Sem spam, cancelas quando quiseres.

Comentários · 0