Tesis:

Un sistema de programación lógica extensible y con soporte para analisis global.


  • Autor: CABEZA GRAS, Daniel

  • Título: Un sistema de programación lógica extensible y con soporte para analisis global.

  • Fecha: 2004

  • Materia: Sin materia definida

  • Escuela: FACULTAD DE INFORMATICA

  • Departamentos: INTELIGENCIA ARTIFICIAL

  • Acceso electrónico:

  • Director/a 1º: HERMENEGILDO SALINAS, Manuel de

  • Resumen: El objetivo de esta tesis doctoral es diseñar y desarrollar un sistema de programación multi-paradigma de nueva generación, que esté basado en un núcleo de Programación Lógica y ofrezca soporte al análisis global. El paradigma de la Programación Lógica se ha demostrado particularmente útil para el desarrollo de aplicaciones complejas, como las que aparecen en el campo de la Inteligencia Artificial, incluyendo sistemas basados en el conocimiento, agentes inteligentes, sistemas expertos, etc. El área del análisis global de programas (generalmente basado en la interpretación abstracta) ha experimentado grandes progresos en el contexto de la Programación Lógica, usado para inferir información en tiempo de compilación sobre el comportamiento de los programas en ejecución. La información inferida se ha mostrado muy provechosa no sólo para producir código optimizado, sino también en verificación de programas y en detección y diagnosis de errores. Sin embargo, mientras que el análisis global de programas es en este momento relativamente bien entendido desde un punto de vista teórico, se ha prestado escasa atención al desarrollo de un sistema práctico de programación lógica (que al menos proporcione una implementación completa y modular de Prolog) que incorpore dicho análisis. Esta tesis rellena este vacío proponiendo un diseño del lenguaje y una implementación que hace el análisis global práctico y escalable. Otro objetivo del sistema desarrollado es servir como banco de trabajo experimental para desarrollar nuevas extensiones a la Programación Lógica. El sistema incluye técnicas que permiten extender el lenguaje núcleo de una manera muy flexible (y al nivel del fuente), lo que ha sido utilizado para desarrollar y probar numerosas extensiones incluyendo funciones, objetos, restricciones, registros, persistencia, ejecución distribuida, y otras. El sistema producido (Ciao) se ha hecho libremente.