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.

Advertisement

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

Advertisement

***

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