Rice University datavetenskapare (från vänster) Vijay Murali, Chris Jermaine, Swarat Chaudhuri och Letao Qi skapade ett programvarukodande program som heter Bayou som kan hjälpa mänskliga programmerare genom att skriva bitar av kod som svar på nyckelord. Upphovsman:Jeff Fitlow/Rice University
Datavetare vid Rice University har skapat en djupinlärning, programvarukodningsprogram som kan hjälpa mänskliga programmerare att navigera i den växande mängden ofta dokumenterade gränssnitt för applikationsprogrammering, eller API:er.
Känd som Bayou, Rice -applikationen skapades genom ett initiativ som finansierades av Defense Advanced Research Projects Agency som syftar till att extrahera kunskap från online -källkodförråd som GitHub. Ett papper om Bayou kommer att presenteras den 1 maj i Vancouver, British Columbia, vid den sjätte internationella konferensen om inlärningsrepresentationer, ett förstklassigt utlopp för djupinlärningsforskning. Användare kan prova det på askbayou.com.
Att designa applikationer som kan programmera datorer är en efterlängtad graal av grenen av datavetenskap som kallas artificiell intelligens (AI).
"Människor har försökt i 60 år att bygga system som kan skriva kod, men problemet är att dessa metoder inte är så bra med tvetydighet, "sade Bayou-medskaparen Swarat Chaudhuri, docent i datavetenskap vid Rice. "Du behöver vanligtvis ge många detaljer om vad målprogrammet gör, och att skriva ner dessa detaljer kan vara lika mycket arbete som att bara skriva koden.
"Bayou är en avsevärd förbättring, "sa han." En utvecklare kan ge Bayou en mycket liten mängd information - bara några sökord eller uppmaningar, verkligen - och Bayou kommer att försöka läsa programmerarens tankar och förutsäga det program de vill ha. "
Chaudhuri sa att Bayou tränade sig genom att studera miljontals rader med människoskrivna Java-koder. "Det har i princip studerat allt på GitHub, och det bygger på det för att skriva sin egen kod. "
Bayou medskapare Chris Jermaine, en professor i datavetenskap som samdirekterar Rices Intelligent Software Systems Laboratory med Chaudhuri, sade Bayou är särskilt användbart för att syntetisera exempel på kod för specifika programvaru -API:er.
"Programmeringen idag är väldigt annorlunda än för 30 eller 40 år sedan, "Sa Jermaine." Datorer finns idag i våra fickor, på våra handleder och i miljarder hushållsapparater, fordon och andra enheter. De dagar då en programmerare kunde skriva kod från grunden är sedan länge borta. "
Bayou -arkitekten Vijay Murali, en forskare vid labbet, sa, "Modern mjukvaruutveckling handlar om APls. Det här är systemspecifika regler, verktyg, definitioner och protokoll som gör att en kodbit kan interagera med ett specifikt operativsystem, databas, hårdvaruplattform eller annat mjukvarusystem. Det finns hundratals API:er, och att navigera i dem är mycket svårt för utvecklare. De tillbringar mycket tid på frågor-svar-webbplatser som Stack Overflow och ber andra utvecklare om hjälp. "
Murali sa att utvecklare nu kan börja ställa några av dessa frågor på Bayou, vilket ger ett omedelbart svar.
"Den omedelbara återkopplingen kan lösa problemet direkt, och om det inte gör det, Bayous exempelkod bör leda till en mer informerad fråga för sina mänskliga kamrater, "Sa Murali.
Jermaine sa att lagets främsta mål är att få utvecklare att försöka förlänga Bayou, som har släppts under en tillåtande öppen källkodslicens.
"Ju mer information vi har om vad människor vill ha från ett system som Bayou, ju bättre vi kan göra det, "sa han." Vi vill att så många människor ska använda det som vi kan få. "Bayou bygger på en metod som kallas neural sketch sketch learning, som tränar ett artificiellt neuralt nätverk för att känna igen mönster på hög nivå i hundratusentals Java-program. Den gör detta genom att skapa en "skiss" för varje program som den läser och sedan associera denna skiss med den "avsikt" som ligger bakom programmet.
När en användare ställer frågor till Bayou, systemet gör ett bedömningssamtal om vilket program det blir ombedd att skriva. Det skapar sedan skisser för flera av de mest troliga kandidatprogram som användaren kanske vill ha.
"Baserat på den gissningen, en separat del av Bayou, en modul som förstår de låga detaljerna i Java och kan göra automatiska logiska resonemang, kommer att generera fyra eller fem olika bitar av kod, "Jermaine sa." Det kommer att presentera dem för användaren som träffar på en webbsökning. 'Det här är troligen det rätta svaret, men här är ytterligare tre som kan vara det du letar efter. '"