Partial evaluation of multi-paradigm declarative languacesfoundations, control, algorithms and efficiency
- Germán Vidal Oriola Director
- María Alpuente Frasnedo Director
Defence university: Universitat Politècnica de València
Fecha de defensa: 02 April 2001
- Isidro Ramos Salavert Chair
- Ricardo Peña Marí Secretary
- Moreno Falaschi Committee member
- Michael Hanus Committee member
- Mario Rodríguez Artalejo Committee member
Type: Thesis
Abstract
La evaluación parcial es una técnica automática que consigue optimizar programas garantizando que su semántica se preserva, La optimización se consigue especializando los programas con respecto a partes de sus entradas (por tanto,se conoce también como especialización de programas). Esta técnica ha sido investigada en el contexto de una gran variedad de lenguajes de programación declarativos, especialmente en los paradigmas de programación funcional y lógica. Recientemente, se ha introducido un marco unificado para la evaluación parcial de lenguajes que integran características de programación lógica y funcional. Este marco se basa en el uso del estrechamiento (el mecanismo operacional estándar de los lenguajes lógico funcionales) para guiar el proceso de especialización. Sin embargo, el método basado en estrechamiento no está convenientemente equipado para poder diseñar un evaluador parcial efectivo en un lenguaje multiparadigma moderno como Curry, Escher o Toy, ya que existen muchas características de dichos lenguajes que no han sido contempladas en este marco. En la presente tesis, desarrollamos métodos y técnicas que hace factible la definición de evaluadores parciales efectivos para estos lenguajes modernos. En breve, las principales contribuciones de la tesis son: 1- La definición de un marco de evaluación parcial para programas lógico funciones con residuación, que generalizan los programas lógicos con modelos de computación concurrentes. 2- La formulación de operadores de control efectivos para manipular símbolos de función primitivos en lenguajes lógicos funcionales. 3- El uso de una representación abstracta para programas, que se caracteriza porque los programas de alto nivel se pueden traducir automáticamente a dicha representación. Esto nos permite definir un método simple y conciso para la especialización de programas que cubre todas las caracterísiticas de los lenguajes decl