PDF de programación - Introducción al lenguaje Prolog

Imágen de pdf Introducción al lenguaje Prolog

Introducción al lenguaje Prologgráfica de visualizaciones

Publicado el 16 de Junio del 2018
225 visualizaciones desde el 16 de Junio del 2018
168,2 KB
26 paginas
INTRODUCCI ¶ON AL LENGUAJE PROLOG

¶Indice

1. Introducci¶on

2. Caracter¶‡sticas Generales

2.1. Evoluci¶on hist¶orica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2. Esquema general de trabajo en Prolog . . . . . . . . . . . . . . . . . . . . . . . .

2.3.

Implementaciones de Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3.1. SICStus Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3.2. SWI-Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3. Prolog y el paradigma de la Programaci¶on L¶ogica

3.1. Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.1.1. T¶erminos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.1.2. Programas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

2

2

3

4

5

6

6

6

6

8

3.1.3. Consultas para la activaci¶on de programas . . . . . . . . . . . . . . . . . . 10

3.1.4. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2. Sem¶antica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4. Predicados Predeflnidos

15

4.1. Aritm¶etica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.1.1. Operadores aritm¶eticos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.1.2. Predicados aritm¶eticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.1.3. Programas aritm¶eticos en Prolog . . . . . . . . . . . . . . . . . . . . . . . 17

4.2. Entrada/Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.3. Control: el corte

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.3.1. Deflnici¶on y propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3.2. Usos del corte. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.

Introducci¶on

En este documento se realiza una breve introducci¶on al lenguaje de programaci¶on Prolog, con
el objetivo fundamental de mostrar c¶omo se da el paso desde el concepto de programaci¶on
l¶ogica \pura" estudiado en el tema anterior a un lenguaje de programaci¶on \real". En efecto,
el lenguaje Prolog se puede ver como una extensi¶on de la programaci¶on l¶ogica pura, en el
sentido de que, adem¶as de permitir programar de acuerdo con el paradigma de la programaci¶on
l¶ogica, incorpora una serie de elementos adicionales cuyo objetivo es ofrecer una herramienta
de programaci¶on que sea ¶util en la pr¶actica.

Despu¶es de una descripci¶on de las caracter¶‡sticas generales del lenguaje (evoluci¶on hist¶orica,
esquema general de trabajo e implementaciones existentes), el apartado 3 estudia el funciona-
miento de Prolog desde el punto de vista de la programaci¶on l¶ogica pura, basado en la Progra-
maci¶on L¶ogica Deflnida estudiada en el tema anterior. Su extensi¶on, que se realiza mediante la
introducci¶on de los denominados predicados predeflnidos, se resume en el apartado 4.

No se abordan, por lo tanto, m¶as que algunos de los aspectos m¶as relevantes del lenguaje.
Para un estudio m¶as en profundidad de Prolog se recomienda consultar los siguientes libros (los
tres primeros son libros de car¶acter introductorio, mientras que el ¶ultimo trata aspectos m¶as
avanzados).

L. Sterling and E. Shapiro. The Art of Prolog. The MIT Press, Cambridge, Mass., second
edition, 1994.

W.F. Clocksin and C.S. Mellish. Programming in Prolog. Springer-Verlag, Berlin, fourth
edition, 1994.

I. Bratko. Prolog Programming for Artiflcial Intelligence. Addison-Wesley, Reading, Mas-
sachusetts, third edition, 2001.

R. O’Keefe. The Craft of Prolog. The MIT Press, Cambridge, MA, 1990.

2. Caracter¶‡sticas Generales

2.1. Evoluci¶on hist¶orica

Prolog (del franc¶es, PROgrammation en LOGique) fue el primer lenguaje de programaci¶on ba-
sado en el paradigma de la programaci¶on l¶ogica. Se implement¶o por primera vez a principios de
los años setenta en la Universidad de Marsella (Francia), por un equipo dirigido por A. Colme-
raeur, utilizando resultados te¶oricos aportados por R. Kowalski (Universidad de Edimburgo).
Aunque con ciertas diflcultades iniciales, debido principalmente a la novedad del paradigma
y a la escasa eflciencia de las implementaciones disponibles, el lenguaje se fue expandiendo
r¶apidamente, sobre todo en Europa y en Jap¶on (en este ¶ultimo pa¶‡s la programaci¶on l¶ogica
se incluy¶o como parte central del proyecto de ordenadores de quinta generaci¶on de los años
ochenta). En 1995 el lenguaje se normaliza con el correspondiente est¶andar ISO. En la actua-
lidad Prolog se ha convertido en una herramienta de desarrollo de software pr¶actica y de gran
aceptaci¶on para la que se dispone de m¶ultiples compiladores, tanto comerciales como de libre
distribuci¶on.

2

2.2. Esquema general de trabajo en Prolog

El esquema general de trabajo en Prolog es el siguiente:

1. Escribir un programa l¶ogico en Prolog.

Como se ha visto en el tema anterior, un programa l¶ogico es un conjunto flnito de f¶ormulas
l¶ogicas, que reejan el conocimiento del que se dispone acerca del problema a resolver.
Por lo tanto, un programa en Prolog estar¶a formado por una serie de f¶ormulas l¶ogicas
que, evidentemente, tendr¶an que adaptarse a la sintaxis espec¶‡flca del lenguaje (¶esta se
detalla m¶as adelante). Podr¶an asimismo incluirse comentarios:

% El s¶‡mbolo % precede los comentarios en una ¶unica l¶‡nea

/* Los comentarios en varias l¶‡neas empiezan con /*

y terminan con */

*/

Los programas se pueden escribir mediante cualquier editor de textos, aunque, como se
ver¶a despu¶es, existen editores especiales que facilitan la escritura de programas en Prolog.
Una vez escrito un programa, ¶este se deber¶a guardar en un flchero (la extensi¶on habitual
para los programas en Prolog es \.pl").

2.

Iniciar el sistema Prolog y cargar un programa.

Cuando se inicia un sistema Prolog, ¶este muestra por pantalla una l¶‡nea con el siguiente
formato:

?-

que indica que el sistema est¶a esperando la introducci¶on por parte del usuario de alguna
consulta. Para poder trabajar con un programa escrito previamente, es necesario cargar
el flchero correspondiente en el sistema Prolog. Lo anterior se puede hacer de dos formas
distintas:

- interpretando el programa por medio del int¶erprete del lenguaje. Esta soluci¶on es la
m¶as habitual cuando se est¶a probando un programa, y la acci¶on se conoce como
\consultar" un flchero. Para realizarla, basta con utilizar el predicado del sistema
consult, con el nombre del flchero que se quiere cargar:

?- consult(’c:/Prolog/prueba.pl’).

Lo anterior es equivalente a escribir simplemente el nombre del flchero entre corche-
tes:

?- [’c:/Prolog/prueba.pl’].

- compilando el programa por medio del compilador del lenguaje. El c¶odigo compilado
es m¶as r¶apido que el c¶odigo interpretado, aunque ofrece menos facilidades en lo que
a depuraci¶on se reflere. La compilaci¶on de un programa se realiza por medio del
predicado del sistema compile:

?- compile(’c:/Prolog/prueba.pl’).

3

En cualquiera de los dos casos, la respuesta del sistema puede ser de dos tipos:

- si se ha detectado alg¶un error sint¶actico en el programa, el sistema Prolog avisa de ello
mediante un mensaje. En estos casos habr¶a que volver a editar el programa para
corregir los errores que contiene y volver a cargarlo.

- en caso contrario, el sistema responde con la palabra yes, que indica que el programa
se ha cargado correctamente y el sistema est¶a listo para recibir consultas del usuario.

Nota: la mayor¶‡a de los sistemas Prolog ofrecen un entorno de programaci¶on interactivo
dotado de men¶us mediante los cuales se ofrecen las acciones m¶as habituales, entre ellas la
carga de flcheros tanto para ser interpretados como para ser compilados (normalmente,
\File/Consult..." y \File/Compile...").

3. Activar un programa desde el sistema Prolog.

Una vez que se ha cargado correctamente un programa, el sistema est¶a preparado para
recibir las consultas del usuario relativas al problema que se pretende resolver. Para ello
bastar¶a con escribir dichas consultas, siguiendo la sintaxis espec¶‡flca del lenguaje, en
la l¶‡nea de consultas del sistema. El formato de estas consultas as¶‡ como las posibles
reacciones del sistema ante ellas se detallan m¶as adelante.

Nota: Los sistemas Prolog suelen incorporar un mecanismo de depuraci¶on que permite
seguir paso a paso la ejecuci¶on de las consultas, establecer puntos de corte en la ejecuci¶on,
etc. Su funcionamiento b¶asico es el siguiente:

para entrar en modo de depuraci¶on debe escribirse el predicado del sistema trace
en la l¶‡nea de consultas:
?- trace.
A partir de ese momento, las consultas que se realicen se ejecutar¶an en modo de
depuraci¶on, mostrando una despu¶es de otra todas las llamadas realizadas interna-
mente por el sistema Prolog. Para avanzar en la depuraci¶on, basta con pulsar la tecla
RETURN. Tambi¶en puede pulsarse la tecla h para obtener ayuda sobre las distin-
tas opciones disponibles. En particular, la tecla n permite abandonar el proceso de
depuraci¶on.

para desactivar el modo de depuraci¶on se utiliza el predicado notrace:
?- notrace.

Para una informaci¶on m¶as detallada sobre el mecanismo de depuraci¶on de Prolog se
recomienda leer el cap¶‡tulo 8 del libro de Clocksin y Mellish citado en la introducci¶on o
consultar el manual de referencia del sistema Prolog que se est¶e utilizando.

4. Salir del sistema Prolog.

Para salir del sistema Prolog basta con escribir el predicado del sistema halt en la l¶‡nea
de comandos:

?- halt.

2.3.

Implementaciones de Prolog

Como se ha comentado previamente, existen muchas implementaciones del lenguaje Prolog,
tanto comerciales como de libre distribuci¶on. La mayor¶‡a de ellas se adaptan al est¶andar ISO,

4

por lo que los programas Prolog que se generen de acuerdo con dicho est¶andar podr¶an ejecu
  • Links de descarga
http://lwp-l.com/pdf11918

Comentarios de: Introducción al lenguaje Prolog (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad