Científicos informáticos de la Universidad de Rice (de izquierda a derecha) Vijay Murali, Chris Jermaine, Swarat Chaudhuri y Letao Qi crearon una aplicación de codificación de software llamada Bayou que puede ayudar a los programadores humanos escribiendo fragmentos de código en respuesta a palabras clave. Crédito:Jeff Fitlow / Rice University
Los informáticos de la Universidad de Rice han creado un Aplicación de codificación de software que puede ayudar a los programadores humanos a navegar por la creciente multitud de interfaces de programación de aplicaciones a menudo indocumentadas. o API.
Conocido como Bayou, La aplicación Rice se creó a través de una iniciativa financiada por la Agencia de Proyectos de Investigación Avanzada de Defensa con el objetivo de extraer conocimiento de repositorios de código fuente en línea como GitHub. Se presentará un artículo sobre Bayou el 1 de mayo en Vancouver, Columbia Británica, en la Sexta Conferencia Internacional sobre Representaciones del Aprendizaje, una salida de primer nivel para la investigación de aprendizaje profundo. Los usuarios pueden probarlo en askbayou.com.
Diseñar aplicaciones que puedan programar computadoras es un grial buscado durante mucho tiempo de la rama de la informática llamada inteligencia artificial (IA).
"La gente ha intentado durante 60 años crear sistemas que puedan escribir código, pero el problema es que estos métodos no son tan buenos con la ambigüedad, "dijo el co-creador de Bayou, Swarat Chaudhuri, profesor asociado de informática en Rice. "Por lo general, debe proporcionar muchos detalles sobre lo que hace el programa de destino, y escribir estos detalles puede ser tanto trabajo como escribir el código.
"Bayou es una mejora considerable, ", dijo." Un desarrollador puede darle a Bayou una cantidad muy pequeña de información:solo unas pocas palabras clave o indicaciones, de verdad, y Bayou intentará leer la mente del programador y predecir el programa que quieren ".
Chaudhuri dijo que Bayou se entrenó estudiando millones de líneas de código Java escrito por humanos. "Básicamente ha estudiado todo en GitHub, y se basa en eso para escribir su propio código ".
Chris Jermaine, co-creador de Bayou, un profesor de ciencias de la computación que codirige el Laboratorio de Sistemas de Software Inteligente de Rice con Chaudhuri, dicho Bayou es particularmente útil para sintetizar ejemplos de código para API de software específicas.
"La programación actual es muy diferente a la de hace 30 o 40 años, ", Dijo Jermaine." Las computadoras de hoy están en nuestros bolsillos, en nuestras muñecas y en miles de millones de electrodomésticos, vehículos y otros dispositivos. Los días en los que un programador podía escribir código desde cero han quedado atrás ".
El arquitecto Bayou Vijay Murali, un científico investigador en el laboratorio, dijo, "El desarrollo de software moderno tiene que ver con APls. Se trata de reglas específicas del sistema, instrumentos, definiciones y protocolos que permiten que un fragmento de código interactúe con un sistema operativo específico, base de datos, plataforma de hardware u otro sistema de software. Hay cientos de API y navegar por ellos es muy difícil para los desarrolladores. Pasan mucho tiempo en sitios de preguntas y respuestas como Stack Overflow pidiendo ayuda a otros desarrolladores ".
Murali dijo que los desarrolladores ahora pueden comenzar a hacer algunas de esas preguntas en Bayou, que dará una respuesta inmediata.
"Esa retroalimentación inmediata podría resolver el problema de inmediato, y si no es así El código de ejemplo de Bayou debería conducir a una pregunta más informada para sus compañeros humanos, "Dijo Murali.
Jermaine dijo que el objetivo principal del equipo es lograr que los desarrolladores intenten extender Bayou, que ha sido lanzado bajo una licencia permisiva de código abierto.
"Cuanta más información tengamos sobre lo que la gente quiere de un sistema como Bayou, cuanto mejor podamos hacerlo, ", dijo." Queremos que lo use la mayor cantidad de personas posible ". Bayou se basa en un método llamado aprendizaje de bocetos neuronales, que entrena una red neuronal artificial para reconocer patrones de alto nivel en cientos de miles de programas Java. Lo hace creando un "boceto" para cada programa que lee y luego asociando este boceto con la "intención" que se encuentra detrás del programa.
Cuando un usuario le hace preguntas a Bayou, el sistema hace un juicio sobre qué programa se le pide que escriba. Luego crea bocetos para varios de los programas candidatos más probables que el usuario podría desear.
"Basado en esa suposición, una parte separada de Bayou, un módulo que comprende los detalles de bajo nivel de Java y puede hacer un razonamiento lógico automático, generará cuatro o cinco fragmentos de código diferentes, ", Dijo Jermaine." Se presentarán al usuario como resultados en una búsqueda web. 'Esta es probablemente la respuesta correcta, pero aquí hay tres más que podrían ser lo que estás buscando '".