Está en la página 1de 6

ENSAYO SOBRE PROLOG

1. RESEA HISTRICA DE PROLOG


El desarrollo de Prolog se inici en 1970 con Alain Coulmeauer y Philippe
Roussel, quienes estaban interesados en desarrollar un lenguaje para
hacer deducciones a partir de texto. El nombre corresponde a
"Programming

in

Logic

(Programacin

en

lgica).

Prolog

fue

desarrollado en Marsella, Francia, en 1972. El principio de resolucin de


Kowalski, de la Universidad de Edimburgo pareci un modelo apropiado
para desarrollar sobre l mecanismo de inferencia. Con la limitacin de
de la resolucin de clusulas de Horn, la unificacin condujo a un
sistema eficaz donde el no-determinismo inherente de la resolucin se
manej por medio de un proceso de exploracin a la inversa, el cual se
poda implementar con facilidad.
La primera implementacin de Prolog se complet en 1972 usando el
compilador de ALGOL W de Wirth y los aspectos bsicos del lenguaje
actual se concluyeron en 1973. El uso de Prolog se extendi
gradualmente entre quienes se dedicaban a la programacin lgica
principalmente

por

contacto

personal

no

travs

de

una

comercializacin del producto. Existen varias versiones diferentes,


aunque bastante similares. Aunque no hay un estndar del Prolog, la
versin desarrollada en la Universidad de Edimburgo ha llegado a ser
utilizada ampliamente. El uso de este lenguaje no se extendi sino hasta
los aos ochenta. La falta de desarrollo de aplicaciones eficaces de
Prolog inhibi su difusin.
2. DEFINICIONES

Prolog es un lenguaje

conversacional; es decir, el sistema Prolog

mantiene un dilogo continuo con el programador desde el inicio de la


sesin hasta el final de la misma. Este dilogo toma generalmente la
forma de un interrogatorio, a lo largo del cual el programador plantear
preguntas al sistema Prolog.
Por su parte, el sistema Prolog responder cada una de las preguntas
formuladas por el programador en la medida en que esto sea posible.
Linkografia: http://www.lcc.uma.es/~pacog/apuntes/pd/guia.pdf
Gua de Uso Bsico de Prolog
PROLOG es un lenguaje de programacin especialmente indicado para
modelar problemas que impliquen objetos y las relaciones entre ellos.
Programacin Prctica en Prolog
Jose E. Labra G.
Prolog est basado en la lgica de primer orden, es aquella que resuelve
problemas formulados con una serie de objetos y relaciones entre ellos
en base de un conocimiento del problema
http://es.scribd.com/doc/54606270/25/Caracteristicas-del-lenguajeProlog
3. HECHO, PREMISAS O JUICIOS
3.1. Definicin
Un hecho, en PROLOG, es una relacin entre objetos.
3.2. Estructura
Un hecho est compuesto por la relacin y sus objetos en donde la
relacin se la conoce como predicado y los objetos como argumento su
sintaxis es:

relacin(objeto, objeto, ...).

Los nombres de objetos y relaciones deben comenzar con una


letra minscula.

Primero se escribe la relacin, y luego los objetos separados por


comas y encerrados entre parntesis.

Al final de un hecho debe ir un punto (".").

Ejemplos:
La capital de Ecuador es Quito
En Prolog se escribe capital(ecuador,quito).
Ejemplo 2:
A Juan le gusta el dinero
En Prolog gusta(juan,dinero).
Ejemplo 3:
un carro tiene ruedas
En Prolog tiene(carro,ruedas).
4. DIALECTOS EXISTENTES DE PROLOG
A medidas de los aos han existido muchos dialesto y versiones de

los cuales mencionare algunos:


SWI-Prolog es un compilador

dirigido

principalmente

la

investigacin y la educacin. Se distribuyen fuentes y binarios para

Linux, Windows y MacOS X (Darwin)


Arity/Prolog32 es un completo entorno de programacin en Prolog
para Windows de 32 bits que incluye un verdadero compilador, editor,

depurador, intrprete y ayuda. Para descargarlo hay que rellenar un

formulario.
B-Prolog es

un

completo

sistema

CLP

(Restriccin

de

programacin lgica ) que ejecuta programas Prolog y CLP(FD).


Hay versiones para Windows y varios Unix, incluyendo Linux. Se

distribuye tambin el cdigo fuente.


W-Prolog es un intrprete de un lenguaje tipo Prolog implementado
en Java. Es muy portable y puede ejecutarse como aplicacin o como

applet.
jProlog es un intrprete Prolog escrito en Java.
K-Prolog es un compilador de Prolog para Windows, Linux y otros Unix.
5. VARIABLES LGICAS, SUSTITUCIONES E INSTANCIAS.
Una

variable

lgica

significa

la

especificacin

de

un

individuo

indeterminado.
Por ej. padre(juan,X)? para obtener la respuesta X=maria
Una consulta que contiene variables se debe comprender como
encontrar los valores que se pueden asignar a la variable para que la
consulta sea una consecuencia lgica del programa.
Las variables tienen aqu un significado distinto al del que tienen en los
lenguajes del paradigma imperativo: no son una posicin de memoria,
sino una indeterminacin con respecto a la identidad.
Valores de una variable: en este paradigma no se produce el llamado
efecto de lado, ya que una variable una vez ligada a un valor no puede
cambiar de estado. Veremos un ejemplo ms adelante.
Convencin de notacin: Las variables se colocan con letras maysculas.
Las constantes y variables son trminos. Las consultas y trminos que
no contienen variables se llaman ground.
6. Reglas

Una regla sirve para representar conocimiento que en lenguaje natural


se expresa mediante una sentencia condicional. Una regla consta de dos
partes, una cabeza y un cuerpo. La cabeza y el cuerpo estan unidos
mediante el smbolo: cabeza :- cuerpo.
El cuerpo puede estar formado por varios hechos.
cabeza :- hecho1, hecho2, ..., hechon.
La separacion : se lee "si".( la cabeza es verdad si el cuerpo es verdad.)
Ejemplo: Es divisible por dos(X) :- par(X). (Se lee X es divisible
por dos si X es par.). Esta clausula en Prolog es equivalente a la formula
de primer orden (8 X) par(X) ) Es divisible por dos(X). Por tanto, si
podemos probar que X es par entonces hemos probado que X es
divisible por dos.
Nota: En la cabeza de una regla no puede haber mas de un hecho.
Ejemplo1
si en lenguaje natural decimos si X es padre de Y entonces Y es hijo de
X , en Prolog escribiremos:
hijo(Y,X) :- padre(X,Y).

Ejemplo2 :
rico(juan) ) feliz(juan) ^ poderoso(juan)
No se puede expresar directamente en Prolog como
feliz(juan),poderoso(juan):-rico(juan).
Ejemplo3:
es_hija(X,Y) :- es_padre(Y,X), es_mujer(X).

es_abuelo(X,Z) :- es_padre(X,U), es_padre(U,Z).


En qu se diferencia Prolog de otros lenguajes?

Prolog es declarativo: en lugar de especificar paso a paso como


debe trabajar el ordenador, un programa Prolog consta de una
descripcion del problema.
Prolog usa hechos y reglas, es decir, un programa est formado
por una lista de sentencias logicas.
Prolog puede realizar deducciones a partir de los hechos y reglas
del programa.
El control en la ejecucion de un programa Prolog es automatico,
en oposicion a la practica mayora de lenguajes de programacin.
Prolog tiene una sintaxis muy simple, lo que simplifica mucho su
aprendizaje.
Prolog es un lenguaje de muy alto nivel: una aplicacin Prolog
contiene, en general, una decima parte de las instrucciones
necesarias para desarrollar la misma aplicacin en C o Pascal.

También podría gustarte