Tutorial De Prolog
Enviado por pablinho10 • 14 de Marzo de 2014 • 1.114 Palabras (5 Páginas) • 389 Visitas
INFORME SOBRE LENGUAJE FUNCIONAL PROLOG
1.1. INTRODUCCIÓN
PROLOG es un lenguaje de programación declarativo. Los lenguajes declarativos se diferencian de los lenguajes imperativos o procedurales en que están basados en formalismos abstractos (PROLOG está basado en la lógica de predicados de primer orden y LISP, otro lenguaje de programación declarativa, en lambda calculo), y por tanto su semántica no depende de la máquina en la que se ejecutan. Las sentencias en estos lenguajes se entienden sin necesidad de hacer referencia al nivel máquina para explicar los efectos colaterales. Por tanto, un programa escrito en un lenguaje declarativo puede usarse como una especificación o una descripción formal de un problema. Otra ventaja de los programas escritos en lenguajes declarativos es que se pueden desarrollar y comprobar poco a poco, y pueden ser sintetizados o transformados sistemáticamente.
PROLOG es un lenguaje de programación muy útil para resolver problemas que implican objetos y relaciones entre objetos. Está basado en los siguientes mecanismos básicos, que se irán explicando a lo largo de este capítulo:
• Unificación
• Estructuras de datos basadas en árboles
• Backtracking automático
La sintaxis del lenguaje consiste en lo siguiente:
• Declarar hechos sobre objetos y sus relaciones
• Hacer preguntas sobre objetos y sus relaciones
• Definir reglas sobre objetos y sus relaciones
Cada una de estas partes se explica en los siguientes apartados. Fundamentos de PROLOG
1.2 OBJETIVO GENERAL
Introducir los conceptos fundamentales de la programación lógica y aprender a programar en Prolog.
1.3 LOS HECHOS PROLOG
Para explicar los fundamentos de PROLOG vamos a utilizar el típico ejemplo de las relaciones familiares. Para decir que Laura es uno de los dos progenitores de Damián, podríamos declarar el siguiente hecho PROLOG:
Progenitor(laura, damian).
“progenitor” es el nombre de la relación o nombre de predicado y “laura” y “damian” son los argumentos. Los hechos acaban siempre con punto. Nosotros Interpretaremos que Laura, primer argumento de la relación, es la madre de Damián, segundo argumento de la relación. Sin embargo, este orden es arbitrario y cada programador puede darle su propio significado. Los nombres de las relaciones y los argumentos que se refieren a objetos o personas concretas se escribirán con minúscula.
Otros ejemplos de hechos pueden ser los siguientes:
le_gusta_a(juan,maria).
valioso(oro).
tiene(juan,libro).
da(juan,libro,maria).
Los nombres también son arbitrarios y el programador decidirá la interpretación que haga de ellos. La relación le_gusta_a(juan,maria) es equivalente a la relación a(b,c), aunque para que la interpretación sea más sencilla, se recomienda que los nombres se elijan de forma que ayuden a su interpretación.
Los hechos no tienen que reflejar el mundo real necesariamente, pero será única y exclusivamente lo que PROLOG tomará como verdadero. Un conjunto de hechos (también llamados cláusulas), junto con un conjunto de reglas, forman lo que se llama una base de datos PROLOG.
1.4 LAS PREGUNTAS PROLOG
Sobre un conjunto de hechos se pueden realizar una serie de preguntas. Por ejemplo:
?- le_gusta_a(juan,maria).
PROLOG busca automáticamente en la base de datos si existe un hecho que se puede unificar (es decir, tiene el mismo nombre de predicado, el mismo número de argumentos -o aridad - y cada uno de los argumentos tiene el mismo nombre, uno a uno) con el hecho que aparece en la pregunta. PROLOG contestará “SI” si encuentra ese hecho y “NO” si no lo encuentra. La contestación “NO” no implica
...