Una aproximación al fallo en programación declarativa multiparadigma

  1. SÁNCHEZ HERNÁNDEZ, JAIME
Dirigida por:
  1. Francisco Javier López Fraguas Director

Universidad de defensa: Universidad Complutense de Madrid

Fecha de defensa: 08 de junio de 2004

Tribunal:
  1. Mario Rodríguez Artalejo Presidente
  2. Susana Nieva Soto Secretaria
  3. Juan José Moreno Navarro Vocal
  4. Herbert Kuchen Vocal
  5. Germán Vidal Oriola Vocal
Departamento:
  1. Sistemas Informáticos y Computación

Tipo: Tesis

Teseo: 101789 DIALNET

Resumen

La negación en programación lógica es un tema ampliamente investigado desde los inicios de este estilo de programación. En este trabajo se estudia un recurso similar para la programación lógico-funcional. La contrapartida natural a la negación en el contexto lógico-funcional es el fallo en la reducción, que es donde se centra la tesis. Se toma como referencia la negación constructiva de la programación lógica, que es capaz de encontrar valores para las variables de los objetivos, y en ese mismo sentido, se hace una propuesta de fallo constructivo. En el marco lógico-funcional, el fallo tiene además otros usos interesantes, como las reglas por defecto o la recolección de valores. La investigación toma como punto de partida la lógica de reescritura del marco CRWL, un formalismo bien establecido y estudiado para el paradigma lógico-funcional. El fallo se incorpora a través de una lógica orientada a la reducción conjuntista, elaborando las nociones y propiedades se tiene que una prueba de fallo en esta lógica corresponde a una prueba de fallo en esta lógica corresponde a una prueba de indemostrabilidad con respecto a la lógica de CRWL, con lo que el fallo adquiere una caracterización semántica precisa. Como mecanismo operacional se construye una relación de estrechamiento que también se apoya en la visión conjuntista. Para facilitar la presentación, esta construcción se lleva a cabo en dos etapas: en la primera se descarta la igualdad, que después se analiza como relación aislada y se funde con el mecanismo global de estrechamiento. Por último, se estudia la implementación efectiva del fallo en programación lógico-funcional. Es sencillo extender un lenguaje como TOY o Curry con fallo no constructivo plantea serias dificultades debido al mecanismo de reducción que utilizan estos sistemas. Por ello, se diseña el prototipo experimental OOPS con un mecanismo de reducción basado en la semántica con