- O que é inteligência artificial?
- Python e Java empatam em ranking de linguagens de programação
Como é de se imaginar, a ferramenta é baseada em inteligência artificial. A ideia é converter código em linguagem de alto nível — como C++, Java e Python — em outra com o menor nível possível de supervisão ou intervenção humana.
É difícil. Até para um programador experiente, executar esse trabalho frequentemente requer paciência e, como fator principal, bom conhecimento das linguagens de origem e destino.
Transcompiladores (transcompilers) são ferramentas que contribuem com essa tarefa. Graças a elas, o novo código não precisa ser reescrito do zero. Mas, hoje, as vantagens não vão muito além disso: ainda cabe ao desenvolvedor lidar com diferenças de sintaxe, mudanças de biblioteca ou adaptações de APIs, por exemplo.
Nas palavras do próprio Faceboook, o TransCoder vem para ser um transcompilador “neural”, isto é, um transcompilador que utiliza aprendizagem de máquina para fazer todo o trabalho sujo.
O processo começa com um pré-treinamento que mapeia instruções de um código que sãos as mesmas nas linguagens de destino e origem. “Pontos de ancoragem” comuns a muitas linguagens, a exemplos de instruções como “if ou “while” e operadores matemáticos, servem de base para esse trabalho.
Um processo de “retrotradução”, ou seja, de converter o código novamente para a primeira linguagem, permite ao TransCoder gerar dados paralelos para serem comparados aos originais. As diferenças constatadas nesse processo reforçam o treinamento.
A ferramenta foi treinada com mais de 2,8 milhões de repositórios de código aberto disponíveis no GitHub. Também foram realizados testes com 852 funções em C++, Java e Python oriundas do GeeksforGeeks, plataforma que reúne problemas de programação para serem resolvidos (o GeeksforGeeks é ótimo para treinar lógica de programação e habilidades relacionadas; o Spoj também).
Os resultados empolgaram. Na conversão de C++ para Java, por exemplo, o TransCoder obteve 74,8% de precisão no resultados esperados; de Python para C++, 57,8%; de Java para C++, 91,6%.
Por ora, a ferramenta funciona justamente com C++, Java e Python, mas os pesquisadores do Facebook destacam que o TransCoder pode ser treinado para trabalhar com praticamente qualquer linguagem de programação.
O modelo foi desenvolvido para fins acadêmicos, mas, com os devidos aperfeiçoamentos, é possível que o TransCoder encontre utilidade prática: “nossos resultados sugerem que muitos erros cometidos pelo modelo podem ser corrigidos facilmente com a adição de restrições simples ao decodificador para garantir que as funções geradas sejam sintaticamente corretas”, dizem os responsáveis.
É possível saber mais sobre o Facebook TransCoder neste estudo (PDF).
Com informações: VentureBeat.
Facebook TransCoder usa IA para converter entre C++, Java e Python
Fonte: https://tecnoblog.net/344716/facebook-transcoder-ia-conversao-codigo-c-java-python/
Nenhum comentário:
Antes de deixar um comentário, acesse o site meuspy.com e veja como é fácil espionar celulares.