BAYOU is deep-learning, software-coding application that can help human programmers by writing chunks of code in response to keywords. BAYOU learned to write code for programmers by studying billions of programs.
The system—called BAYOU—was developed by Rice University computer scientists, with funding from the US Department of Defense’s Defense Advanced Research Projects Agency (DARPA) and Google.
BAYOU essentially acts as a search engine for coding, allowing developers to enter a few keywords and see code in Java that will help with their task. BAYOU trained itself by studying millions of lines of human-written Java code from GitHub, and draws on that to write its own code, according to the release. It is based on a method called neural sketch learning, which trains an artificial neural network to recognize high-level patterns in hundreds of thousands of Java programs. The system can generate API idioms, or snippets of code that use APIs, in Java, according to its website.
“People have tried for 60 years to build systems that can write code, but the problem is that these methods aren’t that good with ambiguity,” said Bayou co-creator Swarat Chaudhuri, associate professor of computer science at Rice. “You usually need to give a lot of details about what the target program does, and writing down these details can be as much work as just writing the code.
“Bayou is a considerable improvement,” he said. “A developer can give Bayou a very small amount of information — just a few keywords or prompts, really — and Bayou will try to read the programmer’s mind and predict the program they want.”
“Modern software development is all about APls,” BAYOU architect Vijay Murali, a research scientist at Rice lab, said in the release. “There are hundreds of APIs, and navigating them is very difficult for developers. They spend lots of time at question-answer sites like StackOverflow asking other developers for help.”
Bayou co-creator Chris Jermaine, a professor of computer science who co-directs Rice’s Intelligent Software Systems Laboratory with Chaudhuri, said Bayou is particularly useful for synthesizing examples of code for specific software APIs.
“Programming today is very different than it was 30 or 40 years ago,” Jermaine said. “Computers today are in our pockets, on our wrists and in billions of home appliances, vehicles and other devices. The days when a programmer could write code from scratch are long gone.”
Now, developers can ask BAYOU these questions, and receive an immediate response. “Users can specify programming tasks within their code by issuing a query to Bayou about the kind of program that will likely solve the tasks,” the BAYOU website stated. “Bayou’s job is to use the user’s code and the query in order to generate the right program for the task.”
To get more info and try BAYOU, go to askbayou.com