Uma Inteligência Artificial que é capaz de converter um código em outro. Este é o maior feito do Transcoder AI que é uma cria do Facebook capaz de converter código entre Java, Python e C ++. Porém, também pode ser treinada para converter o código fonte de qualquer linguagem de programação para outra.
Os ranscompilers não são necessariamente uma novidade já quepodem converter o código fonte de uma linguagem de programação de alto nível para outra. Entretanto, os pesquisadores do Facebook também desenvolveram um ‘transcompilador neural’ chamado TransCoder AI. É um sistema que pode converter código entre linguagens de alto nível, como Java, Python e C ++.
A migração de uma base de código existente para uma linguagem mais moderna ou eficiente requer uma enorme quantidade de recursos, tanto financeiros quanto de mão-de-obra. Em tese, os transcompiladores podem ajudar a eliminar essa despesa necessária para reescrever o código do zero. No entanto, eles são difíceis de construir na prática porque as linguagens de origem e de destino têm sintaxe, tipos de variáveis, funções de biblioteca padrão e APIs de plataforma diferentes.
TransCoder AI: um conversor de código para qualquer linguagem de programação
O TransCoder AI do Facebook enfrenta esses desafios com uma abordagem de aprendizado não supervisionada. Ele pode ser executado sem supervisão com uma quantidade mínima de intervenção humana para encontrar padrões não detectados em conjuntos de dados sem rótulos e superar as linhas de base baseadas em regras por uma margem “significativa”.
O transcompilador neural pode mapear trechos de código representando as mesmas instruções para trechos de código idênticos, independentemente da linguagem de programação usada. A melhor parte do Facebook TransCoder é que ele pode ser facilmente usado para qualquer linguagem de programação. Além disso, não requer nenhum conhecimento especializado para converter códigos de uma linguagem de programação para outra.
Precisão do TransCoder AI
Os pesquisadores do Facebook treinaram o TransCoder AI em um código disponível ao público em mais de 2,8 milhões de repositórios de código aberto no GitHub para se concentrarem na tradução de código. Para avaliar o desempenho do TransCoder AI, eles escolheram 852 funções paralelas em C ++, Java e Python da GeeksforGeeks – uma plataforma popular que ensina a codificar problemas e oferece soluções em várias linguagens de programação.
Usando os dois dados acima, eles desenvolveram uma nova métrica chamada “precisão computacional” que verifica se as funções traduzidas geram as mesmas saídas com as mesmas entradas que no idioma de origem.
Facebook cria o TransCoder AI capaz de converter código entre Java, Python e C ++
Aqui está o nível de precisão nos resultados obtidos pela IA ao converter códigos de
- C ++ para Java: 74,8%
- C ++ para Python: 67,2%
- Java para C ++: 91,6%
- Java para Python: 68,7%
- Python para Java: 56,1%
- Python para C ++: 57,8%
Do mesmo modo, os pesquisadores dizem que o TransCoder AI exibiu um entendimento da sintaxe de cada linguagem (Java, Python e C ++) junto com suas estruturas de dados. Ele até conseguiu alinhar corretamente as bibliotecas em cada linguagem enquanto se adapta a pequenas modificações – por exemplo, renomear uma variável na entrada.
Porém, o Transcoder não é exatamente perfeito, pois falhou em contabilizar certos tipos de variáveis durante a geração do código. No entanto, superou as estruturas que reescrevem regras criadas manualmente usando o conhecimento de especialistas humanos.
Fossbytes