El ordenador que se programa a sí mismo


En la actualidad, el software es muchísimo más complejo de lo que lo era hace 20 años y, sin embargo, se sigue desarrollando de manera artesanal, línea a línea de código (por mucho que se haya introducido ya la programación por componentes). ¿Por qué no simplificar este proceso?

Así surge Pliny, que es el resultado de un proyecto de cuatro años y 11 millones de dólares, desarrollado por el Departamento de Defensa de EEUU a través de DARPA (Defense Advanced Research Projects Agency). El objetivo del proyecto es que funcione como un sistema de autocorrección y auto-cumplimentación para los ingenieros y científicos informáticos.

Plinio el Viejo fue un erudito y naturalista de los tiempos de Nerón cuya obra maestra fue su Naturalis Historia, la que se puede considerar como la gran enciclopedia de su tiempo con no menos de 160 volúmenes. Quizás por eso, DARPA ha optado por bautizar así a su nuevo proyecto, desarrollado por expertos de la Universidad de Texas (Austin) y la de Wisconsin-Madison, bajo la batuta de la Rice University de Houston (foto superior), gracias a una de las becas DARPA que, a su vez, forman parte del programa MUSE (Mining and Understanding Software Enclaves). La meta de este programa es, a grandes rasgos, reunir cientos de miles de millones de líneas de código en la comunidad open source y crear bases de datos de propiedades, vulnerabilidades y comportamientos del código.

Y es que Pliny es un sistema inteligente capaz de identificar qué código no coincide con la que él tiene en su repositorio, detectando los errores entre millones de líneas de código. Además, una vez hallado el código erróneo Pliny será capaz de reemplazarlo por las líneas de programación correcta, siempre y cuando, claro está, las tenga él en su repositorio.

El nuevo desarrollo de DARPA se basa en tecnologías de análisis masivo de datos, conocidas popularmente como big data. Esta es, precisamente, su espina dorsal, pues gracias a la combinación de técnicas big data y de ciencia informática, Pliny tiene la capacidad de saber cómo mirar el código y tratarlo como simples datos. A fin de cuentas, hablar de software no es hacerlo de un proceso rígido, como muchos piensan, sino que se trata de un proceso en el que con mucha frecuencia existen varias soluciones para un mismo problema.

Para resolverlo, Pliny utiliza la estadística bayesiana –la basada en los ‘grados de creencia-, dando con la solución más probable pero, si ésta es incorrecta, dando la oportunidad a los programadores de revisar y probar las soluciones alternativas.


El sistema ahorraría mucho tiempo y esfuerzo a los programadores, que en ocasiones se queman las cejas tratando de encontrar el error. No sólo eso, sino que además de acortar los ciclos de desarrollo de software, también éste mejorará su calidad con una menor tasa de vulnerabilidades. Aún más, el propio director del proyecto ha llegado a decir que si consiguen su meta, cualquiera que no tenga la más remota idea de lenguajes de programación será capaz de programar un ordenador y, en un futuro mucho más optimista, crear ordenadores autoprogramables.

El lado más oscuro de la iniciativa es el riesgo que supone un sistema de este tipo en manos equivocadas. ¿Se imaginan el daño que podrían hacer los terroristas o delincuentes escaneando grandes sistemas de software para identificar sus vulnerabilidades y atacar?

No hay comentarios:

Publicar un comentario