Está en la página 1de 21

PROLOG

Definicion rapida:
El Prolog proveniente del francs
PROgrammation en LOGique, es un
lenguaje para programar artefactos
electrnicos mediante el paradigma lgico
Es !astante conocido en el "rea de la
#ngenier$a #nform"tica para investigacin en
#nteligencia %rtificial

&istoria

'e trata de un lenguaje de programacin


ideado a principios de los a(os )* en la
+niversidad de %i,-.arseille # /.arsella,
0rancia1 por los estudiantes modlicos %lain
2olmerauer 3 P4ilippe Roussel

&istoria

5aci de un pro3ecto que no ten$a como o!jetivo la


traduccin de un lenguaje de programacin, sino la
clasificacin algor$tmica de lenguajes naturales

%lain 2olmerauer 3 Ro!ert Pasero tra!aja!an en la


parte del procesado del lenguaje natural 3 6ean
7rudel 3 P4ilippe Roussel en la parte de deduccin e
inferencia del sistema

&istoria

7rudel persuadi a Ro!ert 8o9als:i para


que se uniera al pro3ecto, dando lugar a
una versin preliminar del lenguaje Prolog a
finales de ;<); 3 apareciendo la versin
definitiva en ;<)= Esta primera versin de
Prolog fue programada en %LGOL >

&istoria

#nicialmente se trata!a de un lenguaje


totalmente interpretado 4asta que, en ;<?@,
David &D >arren desarroll un compilador
capaA de traducir Prolog en un conjunto de
instrucciones de una m"quina a!stracta
denominada >arren %!stract .ac4ine, o
a!reviadamente, >%. Desde entonces
Prolog es un lenguaje semi-interpretado

0orma de tra!ajar

Las instrucciones se ejecutan normalmente


en orden secuencial, es decir, una a
continuacin de otra, en el mismo orden en
que est"n escritas, que slo var$a cuando
se alcanAa una instruccin de control /un
!ucle, una instruccin condicional o una
transferencia1

Los programas en Prolog se componen de


cl"usulas de &orn que constitu3en reglas
del tipo Bmodus ponendo ponensB, es decir,
B'i es verdad el antecedente, entonces es
verdad el consecuenteB

Las cl"usulas de &orn es al
contrario de lo 4a!itual

Primero se escri!e el consecuente 3 luego


el antecedente El antecedente puede ser
una conjuncin de condiciones que se
denomina secuencia de o!jetivos 2ada
o!jetivo se separa con una coma 3 puede
considerarse similar a una instruccin o
llamada a procedimiento de los lenguajes
imperativos

En Prolog no e,isten instrucciones de


control 'u ejecucin se !asa en dos
conceptos: la unificacin 3 el !ac:trac:ing

Gracias a la unificacin, cada o!jetivo determina


un su!conjunto de cl"usulas suscepti!les de ser
ejecutadas 2ada una de ellas se denomina
punto de eleccin

Prolog selecciona el primer punto de eleccin 3


sigue ejecutando el programa 4asta determinar
si el o!jetivo es verdadero o falso

En caso de ser falso entra en juego el


!ac:trac:ing, que consiste en des4acer
todo lo ejecutado situando el programa en
el mismo estado en el que esta!a justo
antes de llegar al punto de eleccin
Entonces se toma el siguiente punto de
eleccin que esta!a pendiente 3 se repite
de nuevo el proceso

Programacin en Prolog

E,isten dos tipos de cl"usulas:

&ec4os 3 Reglas

+na regla es del tipo:

2a!eAa :- 2uerpo
3 se lee como BLa ca!eAa es verdad si el
cuerpo es verdadB

Las cl"usulas sin cuerpo /es decir,


antecedente1 son llamados 4ec4os porque
siempre son ciertos +n ejemplo de un
4ec4o es:

gato/tom1

que es equivalente a la regla:

gato/tom1 :- true

Dado el 4ec4o anterior, se puede preguntar:

C es tom un gato D

D- gato/tom1

Ees

C que cosas son gatos D

D- gato/F1

F G tom

Operadores

Prolog cuenta con operadores para la unificacin


3 comparacin, sea con evaluacin o sea
sim!lica, como los siguientes:

F is E Hunificacin con evaluacin

F G E Hunificacin sim!lica

FG:GE Hcomparacin con evaluacin

F GG E Hcomparacin sim!lica

%lgunos Ejemplos:

D- F is @IJ

F G ?

D- F G @IJ

F G @IJ

D- @IJ G:G =IK

3es

D- @IJ GG =IK

5o

D- @IJ GG =IK

no

0actorial de un nLmero

H La sinta,is es factorial/5, 01 -M 0actorial de 5 es 0 /el


resultado se guarda en 01
factorial/*, ;1
factorial/;, ;1
factorial/5, 01 :- 5M*, 5; is 5 - ;, factorial/5;, 0;1, 0 is 5 N 0;

Hel factorial se llama recursivamente dejando el resultado


en 0

También podría gustarte