Técnicas avanzadas de compilación para programación lógica

Tesis doctoral de José Francisco Morales Caballero

(english) declarative programming languages allow the expression of programs in a language that is closer to the problem than to the implementation details. Regardless the generality of that definition, a more clear idea of declarativeness is proposed by lloyd, who proposes that programs are theories in some suitable logic, and computation is deduction from the theory. in logic programming, where prolog is one of the most popular incarnations of that paradigm, the theory is that of logical deduction. efficient implementations able to compete with many other high-level languages, and its flexibility, made prolog a very good framework to develop new ideas, such as constraint programming, and multi-paradigm programming merging functional programming, object oriented programming, and imperative programming. although the state of the art of prolog implementations is highly optimized for the kind of search problems it is designed, and it can compete with many language implementations for other paradigms — both logic, functional, and imperative — its dynamism and declarative nature imposes a considerable efficiency gap. An ambitious goal for prolog implementations, shared with many other declarative languages, is closing this gap while not sacrificing expressivity. the objective of this thesis is the development and improvement of advanced techniques for compilation of prolog, orthogonal to many extensions such as constraint logic programming, prolog with tabling, chr over prolog. (spanish) los lenguajes de programación declarativos permiten expresar programas en un lenguaje que es más cercano al problema que a los detalles de implementación. A pesar de la genericidad de esta definición, lloyd propone una noción más clara de la declaratividad, definiendo los programas como teorías en una lógica adecuada y la computación deducción en base a la teoría. prolog es uno de los lenguajes de programación del paradigma lógico más importantes, cuya teoría es la de la la deducción lógica. implementaciones eficientes capaces de competir con muchos otros lenguajes de alto nivel y su flexibilidad, han hecho de prolog un importante punto de partida para desarrollar nuevas ideas, como la programación con restricciones y multi-paradigma, mezclando programación funcional, orientada a objetos e imperativa. aunque el estado del arte de las implementaciones de prolog esta altamente optimizado para el tipo de problemas de busqueda para los que este está diseñado y que puede competir con muchas implementaciones de otros paradigmas — tanto lógico, funcional, como imperativo — su naturaleza caracteristicas dinámicas y declarativas imponen una considerable limitación en eficiencia. Un ambicioso objetivo para las implementaciones de prolog, compartido por muchos otros lenguajes declarativos, consiste en el desarrollo de téctnicas que superen esta limitación sin sacrificar la expresividad del lenguaje. el objetivo de esta tesis es el desarrollo y mejora de técnicas avanzadas de compilacion para prolog, en principio ortogonales a extensiones como la programación lógica con restricciones, prolog con tabulación o chr sobre prolog. las principales contribuciones presentadas en esta tesis pueden resumirse en: – un compilador optimizante de prolog, donde predicados seleccionados son compilados a c y diseñado para aceptar información de alto nivel, obtenida mediante análisis automático y expresada en un lenguaje estandarizado de aserciones. – un enfoce automático a la generación de máquinas abstractas, donde el conjunto de instrucciones y la representación de código de byte y datos son definidas de forma individual. – una descripción del conjunto de instrucciones completo de una máquina abstract para prolog, en un dialecto de prolog extendido para manejar cambios de estado (en forma de variables mutables) y adecuado para realizar transformaciones automáticas de programa. – una representación de tagged words (palabras con etiquetas) en un lenguaje de alto nivel, explorando variantes para los casos de 32 y 64 bit. – un marco de trabajo paramétrico para la generación de variaciones de máquinas abstractas, para explorar optimizaciones de forma general o enfocadas a un conjunto particular de programas. – un estudio de la combinación de técnicas de compilación optimizante en código fuente y en código de bajo nivel, en un caso de prueba real para sistemas ubícuos.

 

Datos académicos de la tesis doctoral «Técnicas avanzadas de compilación para programación lógica«

  • Título de la tesis:  Técnicas avanzadas de compilación para programación lógica
  • Autor:  José Francisco Morales Caballero
  • Universidad:  Politécnica de Madrid
  • Fecha de lectura de la tesis:  17/07/2010

 

Dirección y tribunal

  • Director de la tesis
    • Manuel Carro Liñares
  • Tribunal
    • Presidente del tribunal: ricardo Peña marí
    • terrance Swift (vocal)
    • victor Santos costa (vocal)
    • jan Wielemaker (vocal)

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio