Introduccion Basica A Prolog
Ingeniería Informática
Departamento de Informática
PRÓLOGO
Esta introducción al Prolog está pensada para las prácticas de la asignatura de Matemática Discreta de la Universitat de València, no es por tanto autocontenida ni completa. Para comprender correctamente lo aquí explicado es conveniente leer los apuntes de teoría de la asignatura. Para cualquiercomentario o error en el texto ponerse en contacto con el autor: Fernando Barber Miralles (Fernando.Barber@uv.es).
1. INTRODUCCIÓN
El Prolog es un lenguaje de programación lógica (de ahí su nombre). Esto significa que está basado en la lógica de predicados, en concreto en un subconjunto de esta lógica denominado cláusulas de Horn. En Prolog, un programa es un conjunto de hechos y reglas querepresentan el problema que se pretende resolver. Ante una determinada pregunta sobre el problema, el Prolog utilizará estos hechos y reglas para intentar demostrar la veracidad o falsedad de la pregunta que se le ha planteado. La demostración de la pregunta se basa en dos principios: • La unificación: Es el algoritmo que se encarga de resolver las igualdades lógicas. • El principio de resolución: Esel algoritmo que, a partir de la negación de la pregunta y los hechos y reglas del programa, intenta llegar a un absurdo para demostrar que la pregunta es cierta.
2. PROGRAMAS, PREDICADOS
Un programa Prolog está formado por predicados. Cada predicado está definido unívocamente por su nombre y su aridad. La aridad es el número de argumentos (o parámetros) de un predicado. Ej. humano(pepe).humano(juan). Para referenciar este predicado se utiliza únicamente su nombre y aridad: humano/1. Cada predicado en Prolog puede estar definido por una o más cláusulas. En nuestro ejemplo, humano/1 está definido por dos cláusulas. Las cláusulas a su vez pueden ser de dos tipos: hechos y reglas. Los hechos son afirmaciones que consideramos ciertas en nuestro programa. Las reglas son implicacioneslógicas, que pueden tener varios antecedentes pero un único consecuente. Este tipo de reglas se denominan cláusulas de Horn.
Introducción básica al Prolog
1
Ej. humano(X) → mortal(X). que utilizando la sintaxis de Prolog se escribe: mortal(X):humano(X). Los hechos se pueden considerar casos particulares de reglas en donde no hay ningún antecedente.
3. TÉRMINOS DE PROLOG
Los argumentos enuna cláusula pueden ser cualquier término de Prolog. Los términos de Prolog son los siguientes: Átomos: Los átomos hacen las funciones de identificadores en Prolog. Un átomo puede ser cualquier combinación de caracteres alfanuméricos, pero si no empieza por una letra minúscula o si contiene caracteres que no sean letras, números o el carácter subrayado ‘_’, debe encerrarse entre comillas simples.Ej. Válidos No Válidos unatomo un atomo otro_atomo _otro_atomo 'Atomo' Atomo '2+3' 2+3 'un atomo' Enteros: Números enteros. El rango es dependiente de la implementación. Reales: Números reales. El rango también es dependiente de la implementación. Ej: 12.3 2.5e-4 Estructuras (funciones): Se utilizan para agrupar un número constante de términos. Son las funciones de lógica de predicados. Listas: Seutilizan para agrupar un número variable de términos. Variables: Una variable puede ser instanciada a cualquier otro término de Prolog, incluida otra variable. No son equivalentes a las variables en los lenguajes procedurales, sino a las variables lógicas o matemáticas. El nombre de una variable ha de comenzar por una mayúscula o subrayado y puede contener cualquier combinación de letras, números yel carácter subrayado. Ej: Suma X2 _32 _ El carácter subrayado es un tipo de variable especial que se denomina variable anónima. Ésta se utiliza para escribir variables sin necesidad de darles un nombre. Cada aparición del carácter subrayado representa una variable distinta.
Introducción básica al Prolog
2
4. UNIFICACIÓN
La unificación, como ya se ha comentado, es el algoritmo que...
Regístrate para leer el documento completo.