Desenvolvimento

16 fev, 2016

MIT cria sistema que usa aprendizado máquina para corrigir erros em códigos

Publicidade

O MIT desenvolveu um sistema que utiliza aprendizado de máquina para corrigir erros em códigos. Ele consegue corrigir 10 vezes mais erros que seus antecessores, segundo os pesquisadores.

A novidade, chamada de Prophet, foi apresentada em um estudo durante o simpósio Principles of Programming Languages, que aconteceu em janeiro.

Essencialmente, o sistema funciona por meio do estudo de correções já feitas em programas open source para aprender com eles. O Prophet recebeu informações sobre 777 erros e correções em oito aplicações open source comuns armazenadas no GitHub. O sistema, então, aplica o conhecimento para produzir novas correções para novos bugs em um conjunto diferente de programas.

Leia mais:

Fan Long, um estudante graduado em Engenharia Elétrica e Ciência da Computação e que foi coautor do estudo, tinha, já tinha desenvolvido um algoritmo para reparar erros de programas, modificando sistematicamente o código do programa. O problema era que esse processo era muito demorado.

O novo sistema de aprendizado de máquina funciona em conjunto com esse algoritmo, mas classifica possíveis patches de acordo com a probabilidade de estarem corretos antes de submetê-los a tarefas demoradas.

Os pesquisadores testaram o sistema em um conjunto de 69 erros do mundo real que surgiram em oito programas populares de código aberto. Enquanto os antigos sistemas de reparação de bugs foram capazes de corrigir um ou dois dos erros, o novo sistema consertou entre 15 e 18.

De acordo com Martin Rinard, professor de Engenharia Elétrica e Ciência da Computação e que também foi coautor do estudo, “um dos aspectos mais intrigantes dessa pesquisa é a descoberta de que, de fato, existem propriedades universais do código correto que podem ser aprendidas pelo sistema a partir de um conjunto de aplicações e aplicadas a outro conjunto de aplicações. Se você pode reconhecer o código correto, isso tem enormes implicações em toda a engenharia de software. Essa é apenas a primeira aplicação do que esperamos que venha a ser uma técnica totalmente nova”.

Com informações de PC World