p Cientistas da computação da Rice University (a partir da esquerda) Vijay Murali, Chris Jermaine, Swarat Chaudhuri e Letao Qi criaram um aplicativo de codificação de software chamado Bayou, que pode ajudar programadores humanos escrevendo pedaços de código em resposta a palavras-chave. Crédito:Jeff Fitlow / Rice University
p Cientistas da computação da Rice University criaram um aprendizado profundo, aplicativo de codificação de software que pode ajudar os programadores humanos a navegar na crescente multidão de interfaces de programação de aplicativos frequentemente não documentadas, ou APIs. p Conhecido como Bayou, o aplicativo Rice foi criado por meio de uma iniciativa financiada pela Defense Advanced Research Projects Agency com o objetivo de extrair conhecimento de repositórios de código-fonte online como o GitHub. Um artigo sobre Bayou será apresentado em 1º de maio em Vancouver, Columbia Britânica, na Sexta Conferência Internacional sobre Representações de Aprendizagem, uma saída principal para pesquisa de aprendizado profundo. Os usuários podem experimentar em askbayou.com.
p Projetar aplicativos que podem programar computadores é um graal há muito procurado no ramo da ciência da computação chamado inteligência artificial (IA).
p "As pessoas tentaram por 60 anos construir sistemas que pudessem escrever código, mas o problema é que esses métodos não são tão bons com ambigüidade, "disse o co-criador de Bayou, Swarat Chaudhuri, professor associado de ciência da computação na Rice. "Você geralmente precisa fornecer muitos detalhes sobre o que o programa de destino faz, e escrever esses detalhes pode ser tão trabalhoso quanto escrever o código.
p "Bayou é uma melhoria considerável, ", disse ele." Um desenvolvedor pode fornecer a Bayou uma quantidade muito pequena de informações - apenas algumas palavras-chave ou prompts, realmente - e Bayou tentará ler a mente do programador e prever o programa que eles desejam. "
p Chaudhuri disse que Bayou se treinou estudando milhões de linhas de código Java escrito por humanos. "É basicamente estudado tudo no GitHub, e se baseia nisso para escrever seu próprio código. "
p Chris Jermaine, co-criador de Bayou, um professor de ciência da computação que co-dirige o Laboratório de Sistemas de Software Inteligente de Rice com Chaudhuri, o referido Bayou é particularmente útil para sintetizar exemplos de código para APIs de software específicas.
p "A programação hoje é muito diferente do que era há 30 ou 40 anos, "Jermaine disse." Os computadores hoje estão em nossos bolsos, em nossos pulsos e em bilhões de eletrodomésticos, veículos e outros dispositivos. Já se foram os dias em que um programador podia escrever código do zero. "
p Vijay Murali, arquiteto de Bayou, um cientista pesquisador no laboratório, disse, "O desenvolvimento de software moderno tem tudo a ver com APIs. Estas são regras específicas do sistema, Ferramentas, definições e protocolos que permitem que uma parte do código interaja com um sistema operacional específico, base de dados, plataforma de hardware ou outro sistema de software. Existem centenas de APIs, e navegá-los é muito difícil para os desenvolvedores. Eles passam muito tempo em sites de perguntas e respostas, como o Stack Overflow, pedindo ajuda a outros desenvolvedores. "
p Murali disse que os desenvolvedores agora podem começar a fazer algumas dessas perguntas em Bayou, que dará uma resposta imediata.
p "Esse feedback imediato pode resolver o problema imediatamente, e se não, O código de exemplo de Bayou deve levar a uma pergunta mais informada para seus pares humanos, "Murali disse.
p Jermaine disse que o principal objetivo da equipe é fazer com que os desenvolvedores tentem estender o Bayou, que foi lançado sob uma licença permissiva de código aberto.
p "Quanto mais informações temos sobre o que as pessoas desejam de um sistema como o Bayou, o melhor que podemos fazer, ", disse ele." Queremos o máximo de pessoas possível para usá-lo. "Bayou é baseado em um método chamado aprendizado de esboço neural, que treina uma rede neural artificial para reconhecer padrões de alto nível em centenas de milhares de programas Java. Ele faz isso criando um "esboço" para cada programa que lê e, em seguida, associando esse esboço à "intenção" que está por trás do programa.
p Quando um usuário faz perguntas a Bayou, o sistema faz um julgamento sobre qual programa está sendo solicitado a escrever. Em seguida, ele cria esboços para vários dos programas candidatos mais prováveis que o usuário pode desejar.
p "Com base nessa suposição, uma parte separada de Bayou, um módulo que entende os detalhes de baixo nível do Java e pode fazer raciocínio lógico automático, vai gerar quatro ou cinco pedaços diferentes de código, "Jermaine disse." Vai apresentar isso ao usuário como resultados de uma pesquisa na web. 'Esta é provavelmente a resposta correta, mas aqui estão mais três que podem ser o que você está procurando. '"