Los bugs son uno de los aspectos más irritantes del software. No solo son molestos para los usuarios, sino una pesadilla de localizar y reparar para los desarrolladores. Un nuevo sistema creado por el MIT abre la puerta a programas que arreglan sus propios bugs sin intervención humana.

El sistema se llama CodePhage y lo que hace es examinar lo que hacen otras aplicaciones para solucionar problemas similares. Un aspecto notable de CodePhage es que no necesita interpretar el código fuente de los programas de los que aprende. Lo que hace es examinar su funcionamiento, cómo se ejecuta, y que tipo de comprobaciones de seguridad realiza. Si encuentra una forma válida de solucionar el error, el sistema la implementa automáticamente y realiza una comprobación para ver si el bug se ha solucionado.

Evidentemente, no todas las aplicaciones funcionan igual ni sirven para lo mismo, pero hay los suficientes elementos comunes como para que una pueda aprender de otra. El especialista en inteligencia artificial y ciencias de la computación del MIT, Stelios Sidiroglou-Douskos, es el principal creador de CodePhage y lo explica así:

Tenemos montones de código fuente disponible en repositorios de código abierto. Hay millones de proyectos, y muchos de ellos implementan especificaciones muy similares. Aunque la función principal del programa no sea la misma, frecuentemente se comparten componentes secundarios y funciones en una gran cantidad de proyectos.

CodePhage importa la soluciones a los bugs y ls prueba aplicando diferentes variables al código del programa con el problema hasta que lo resuelve. Si no es así, continúa buscando y probando soluciones en otros programas. Los creadores del sistema lo han probado en siete aplicaciones de código abierto que tenían errores conocidos. CodePhage ha tardado entre dos y diez minutos en reparar cada error.

Advertisement

Lo fantástico de CodePhage es que es capaz de aplicar sistemas de corrección de errores que han sido diseñados para otras funciones y no necesariamente en el mismo lenguaje de programación. Simplemente calcula cómo hay que modificar esa parte del código para que funcione. Los creadores de este sistema confían en que ahorrará muchas horas de trabajo a los programadores. El objetivo, según explica otro de los participantes en el proyecto llamado Martin Rinard es que un desarrollador no tenga que escribir de cero una pieza de código que ya se ha escrito antes. [vía MIT News]

Ilustración: Jose-Luis Olivares / MIT

Click here to view this kinja-labs.com embed.

***

Psst! también puedes seguirnos en Twitter, Facebook o Google+ :)