Sunteți pe pagina 1din 16

Hans Villagrn Vidal

La lgica se preocupa de comprobar que los razonamientos sean correctos. Principalmente esto se hace mediante el lenguaje matemtico que conocemos. p, q, P(x), A(x, y). Sin embargo, el proceso de deduccin del razonamiento se puede automatizar a travs de un lenguaje de programacin.

Este lenguaje no es el tpico lenguaje que sigue todas las instrucciones que le son dadas en el cdigo (los lenguajes procedurales como C), sino que es parte de otro paradigma, acorde a la deduccin lgica (tal como se hace con reglas de inferencia), el cual es la programacin lgica deductiva y su lenguaje caracterstico PROLOG (PROgrammation en LOGique), creado en la dcada de 1970.

Prolog se utiliza para resolver problemas donde existen objetos y relaciones entre ellos. Programar en Prolog consiste principalmente en: declara hechos sobre los objetos y sus relaciones definir reglas sobre los objetos y sus relaciones hacer preguntas

Prolog es un lenguaje interpretado, es decir, requiere de un programa para hacer funcionar sus programas. El intrprete de Prolog que se usar es SWIProlog, que pueden descargar de http://www.swi-prolog.org/download/stable Los programas que crean en Prolog terminan con .pl Los programas se consultan con el comando

consult(nombre_archivo).

Constantes: tomos y nmeros tomos:


Comienzan con minscula y le siguen nmeros, letras y otros signos (como _); tales como juan, arbol_01, padre. Todo lo que vaya entre comillas; maria, alberto Caracteres especiales; :- , :? , -->

Nmeros: la sucesin de dgitos, pueden ser int o float

Variables:
Comienzan con Mayscula; X, Y, Madre Tambin pueden comenzar con _ ; _alfa, _lista Caso Especial: _ nomina a cualquier variable

Estructuras:
Identifican datos compuestos Se denotan de la forma functor(comp1, comp2,) Functor nombra un hecho, una relacin o una funcin.

Operadores:
Algunas estructuras se pueden escribir como operadores que ya estn definidos, como las operaciones aritmticas x + y es lo mismo que +(x,y) Tienen precedencia, posicin (infija, prefija, posfija) y asociatividad Los operadores aritmticos +,-,*,/,mod se evaluan con is, que retorna un valor de verdad; ejemplo 4 is 2+2

Otros operadores son los de comparacin: X =:= Y igualdad X \= Y desigualdad X < Y menor X > Y mayor X >= Y mayor igual X =< Y menor igual

X = Y denota la igualdad entre variables Se define comprobando que dos variables llegan al mismo objeto. Similar al funcionamiento de is. En Prolog toda consulta debe terminar con un punto . Ejemplo: 5 is 2+2.

La base de un programa en Prolog son los hechos y las reglas. Los hechos describen la propiedad de un objeto Todo hecho declarado es verdadero Ejemplos:
mujer(ana). tiene(juan, perro).

Las reglas establecen dependencias entre los hechos Las reglas se escriben como clausulas de

Horn:

Las conjunciones en Prolog se denotan con la coma ,

Las reglas se escriben en Prolog de la forma


<cabeza> :- <cuerpo> Donde <cuerpo> son hechos unidos por conjunciones y <cabeza> es el consecuente de una clausula de Horn. Ejemplo:Juan es amigo de aquellos a quienes les gustan los autos. Se denota en Prolog: amigo(Juan, Y) :- gusta(Y, autos)

Definir hechos y reglas para realizar las siguientes consultas:


Quien es abuelo de quien Quien es padre o madre de quien Quienes son hermanos Quien es to/ta de quien

Primero, definimos el gnero de los integrantes de la familia y la relacin es_hijo_de(Hijo, Padre)

S-ar putea să vă placă și