Por una investigación en informática más sólida
El proyecto PADECL (Advanced program analysis using declarative languages) implementó algoritmos de análisis de programas avanzados sirviéndose tan solo de especificaciones declarativas para su aplicación en análisis de alto nivel y distintos lenguajes de programación. Estas especificaciones se ocupan de lo que es necesario computar en lugar de en el modo en el que se realiza la computación. Trabajos anteriores dedicados a especificaciones declarativas y metodologías de optimización permitieron obtener mejoras en el rendimiento de las implementaciones de análisis mostrado mejoras en el rendimiento en las implementaciones del algoritmo «Points-to analyses». PADECL, concluido recientemente, se dedicó al desarrollo de algoritmos de análisis de programas eficaces, sirviéndose para ello del lenguaje de programación Datalog, un lenguaje de programación lógica verdaderamente declarativo utilizado con frecuencia como lenguaje de consultas en bases de datos deductivas. Otras técnicas, como el análisis de escape, los flujos de información, el flujo de excepción y cast safety, implementadas en el marco de DOOP, perteneciente al lenguaje de programación Java, contribuyeron a obtener una mayor precisión, integridad y rendimiento que otras iniciativas pasadas. PADECL implementó análisis de seguridad, fiabilidad y análisis de alto nivel para programas de Java y desarrolló la infraestructura básica para el análisis de programas en Javascript. Los resultados positivos en este campo contribuyeron a ampliar la funcionalidad del marco DOOP. Para más información, véase el sitio web de DOOP. Los resultados científicos de la iniciativa se publicaron en el CC 2013 («Congreso internacional sobre construcción de compiladores») y el PLDI 2013 («Congreso sobre diseño e implementación de lenguajes de programación») entre otros eventos. Además se publicaron cuatro artículos sobre el tema en revistas de gran calidad en colaboración con la Universidad de Atenas. PADECL generó un marco de análisis de programas eficiente, preciso, rico y modular, un logro que supone un paso importante hacia el análisis automático de los programas. Los resultados del proyecto facilitan el desarrollo de software más fiable y rápido y permiten aumentar la productividad de los programadores. Todo ello posee implicaciones de gran calado para múltiples sectores, y ofrece ventajas para varias herramientas de software concretas, entornos de desarrollo integrados, navegadores y detectores de errores.
Palabras clave
Informática, programas informáticos, análisis de programas, lenguajes declarativos, lenguaje de programación