Canonical financia projeto que quer usar IA para converter grandes programas em C para Rust
A enorme quantidade de software escrito em C é um obstáculo para empresas interessadas nas proteções de memória oferecidas pelo Rust .
Reescrever manualmente projetos maduros pode levar anos e ainda introduzir novos bugs.
A Canonical quer descobrir se parte desse trabalho pode ser automatizada sem sacrificar o comportamento do software original.
A desenvolvedora do Ubuntu está financiando um projeto de doutorado de três anos da Universidade de Bristol, no Reino Unido, dedicado à criação de uma plataforma capaz de traduzir repositórios com centenas de milhares de linhas de C para Rust.
O financiamento terá contrapartida da UK Research and Innovation (UKRI).
O objetivo é mais ambicioso do que simplesmente produzir código Rust que consiga ser compilado: a pesquisa busca gerar código seguro, de fácil manutenção e que preserve o comportamento do programa escrito em C.
Modelos de linguagem farão apenas uma parte do trabalho A plataforma deverá dividir grandes repositórios em partes que possam ser processadas separadamente, preservando informações sobre tipos, dependências e comportamento necessárias durante a conversão.
A tradução propriamente dita recorrerá a modelos de linguagem treinados ou ajustados a partir de exemplos conhecidos de conversões de C para Rust.
A intenção é evitar um dos problemas dos tradutores tradicionais: gerar código que tecnicamente é Rust, mas mantém estruturas e práticas herdadas do C, incluindo uso excessivo de operações unsafe .
O código produzido pela IA, porém, será considerado não confiável até passar por verificações adicionais.
O projeto pretende combinar fuzz testing com métodos mais formais de verificação de equivalência para descobrir se a versão em Rust realmente se comporta como o programa original.
Caso apareçam diferenças, outra etapa deverá localizar a provável origem do erro e tentar corrigi-la com técnicas de reparo simbólico de programas.
A abordagem, portanto, combina modelos de linguagem, análise tradicional de programas, testes e métodos formais em vez de entregar toda a migração à IA.
AppArmor e snap-confine serão usados como testes Dois componentes ligados à segurança do Ubuntu servirão como casos de estudo: AppArmor e snap-confine .
Resumo agregado pelo 5News a partir do feed público do veículo. A matéria completa, com todo o contexto, está em www.hardware.com.br — o conteúdo pertence a Hardware.com.br.