Partial evaluation of multi-paradigm declarative languacesfoundations, control, algorithms and efficiency

  1. Albert, Elvira
Dirigida por:
  1. Germán Vidal Oriola Director/a
  2. María Alpuente Frasnedo Director/a

Universidad de defensa: Universitat Politècnica de València

Fecha de defensa: 02 de abril de 2001

Tribunal:
  1. Isidro Ramos Salavert Presidente/a
  2. Ricardo Peña Marí Secretario
  3. Moreno Falaschi Vocal
  4. Michael Hanus Vocal
  5. Mario Rodríguez Artalejo Vocal

Tipo: Tesis

Teseo: 85178 DIALNET

Resumen

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