Proyecto programacion prolog
SINTAXIS DE LENGUAJE PROLOG Y APLICACIONES |
|
PRESENTADO POR: |
MARIA BEATRIZ CAMACHO BURGOS
OSCAR JAVIER MARQUEZCARLOS EDUARDO GONZALEZFREDY LEONARDO JOYAWILDERMAN ROBLES |
02/07/2012 |
POLITECNICO GRANCOLOMBIANODESARROLLO E IMPLEMENTACION DE SOFTWAREPARADIGMAS DE PROGRAMACION2012 |
SINTAXIS DEL LENGUAJE PROLOG
PROLOG es un lenguaje deprogramación declarativo. Los lenguajes declarativos se diferencian de los lenguajes imperativos 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 sinnecesidad 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:
· Unificación
· Estructuras de datos basadas en árboles
· Back tracking automático
La estructura de un lenguaje describe la forma:
* Declarar hechos sobre objetos y sus relaciones
* Hacer preguntas sobre objetosy sus relaciones
* Definir reglas sobre objetos y sus relaciones
1. 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 depredicado y “laura” y
“damian” son los argumentos. Los hechos acaban siempre con punto.
Se logra interpretar 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 personasconcretas se escribirán con minúscula.
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.
Las preguntas PROLOG
Sobre un conjunto de hechos sepueden realizar una serie de preguntas. 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 claridad 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. Lacontestación “NO” no implica que el hecho sea falso (aunque sí lo sea para nuestra base de datos), sino que no se puede probar (en general) que sea verdadero con el conocimiento almacenado en la base de datos.
Las reglas PROLOG
A la primera parte de la regla se le llama cabeza o conclusión, el símbolo ":-" es el condicional (SI), y a la parte de la regla que está después de “:-“ es el cuerpo oparte condicional. El cuerpo puede ser una conjunción de objetivos separados por comas. Para demostrar que la cabeza de la regla es cierta, se tendrá que demostrar que es cierto el cuerpo de la regla.
Las cláusulas PROLOG son de tres tipos: hechos, reglas y preguntas. Las cláusulas PROLOG consisten en una cabeza y un cuerpo. Los hechos son cláusulas que tienen cabeza pero no tienen cuerpo....
Regístrate para leer el documento completo.