Tema1
on Avanzada (PAV)
Facultad de Inform´atica - 5A
Tema 1: Introducci´on a los lenguajes de
programaci´on l´ogica
Germ´an Vidal
gvidal@dsic.upv.es
Despacho D-242
Edificio DSIC (2o piso)
Curso 2003/2004
1
Bibliograf´ıa
L´ogica Algoritmica (UPM)
http://www.clip.dia.fi.upm.es/~logalg/
K. Apt. From Logic Programming to Prolog. Prentice-Hall,
1997.
J.M. Spivey. Logic Programming: TheEssence of Prolog.
Prentice-Hall, 1996.
L. Sterling and E. Shapiro. The Art of Prolog: Advanced Programming Techniques. The MIT Press, Cambridge, MA, 1986.
Archivo LP
http://www.comlab.ox.ac.uk/archive/logic-prog.html
Introducci´
on a la programaci´
on l´
ogica
Sintaxis: variables, constantes y estructuras
(usando notaci´on Prolog)
Variables: comienzan con una letra may´uscula (o “_”), ypuede
incluir caracteres, n´umeros y “_”
X,
Im4u,
Mi_coche,
_,
_x,
_22
Constantes: comienzan con una letra min´uscula, y puede incluir caracteres, n´umeros y “_” (entre comillas simples, cualquier
cosa)
a,
juan,
juan_luis,
66,
’Juan Luis’
Estructuras: encabezadas por un functor (como el nombre
de una constante) seguidas de un n´umero fijo de argumentos
entre par´entesis
fecha(miercoles,Mes, 1996)
(los argumentos pueden ser a su vez variables, constantes o estructuras)
El n´umero de argumentos de una estructura es su aridad
Los functores se suelen representar por nombre/aridad. Una
constante se puede ver como un functor de aridad cero
3
Las variables, constantes y estructuras se denominan en conjunto
t´
erminos (de un lenguaje de primer orden). Son las estructuras
de datos deun programa l´ogico
Ejemplos
T´
ermino
pedro
hora(minuto,segundo)
par(Calvin,tigre(Hobbes))
Par(uno,dos)
Par
Tipo
constante
estructura
estructura
ilegal
variable
4
Functor principal
pedro/0
hora/2
par/2
—
—
Sintaxis: ´
atomos, literales y hechos
Atomos: un ´atomo es una expresi´on de la forma
p(t1, t2, . . . , tn)
donde p es el s´ımbolo de predicado del ´atomo (mismas convenciones que losfunctores), n es su aridad y t1, t2, . . . , tn son
t´erminos
El s´ımbolo de predicado de un ´atomo se denota por p/n
Literales: un literal es un ´atomo positivo o negativo
Los literales no pueden aparecer dentro de un t´ermino
Hechos: un hecho es una expresi´on de la forma
p(t1, t2, . . . , tn).
donde p(t1, t2, . . . , tn) es un ´atomo
Ejemplos
perro(nombre(ricky), color(negro)).
amigos(’Ana’,’Juan’).
Los ´atomos y t´erminos se distinguen por el contexto:
perro(nombre(ricky), color(negro)) es un ´atomo y
color(negro) es un t´ermino
5
Sintaxis: reglas, cl´
ausulas y predicados
Reglas: una regla es una expresi´on de la forma
p0(t1, t2, . . . , tn0 ) ←
p1(t11, t12, . . . , t1n1 ),
...
m
m
pm(tm
1 , t2 , . . . , tnm ).
La expresi´on a la izquierda de la flecha debe ser un ´atomo (no
negado)y se llama la cabeza de la regla
Las expresiones a la derecha son literales y forman el cuerpo
de la regla
Los literales del cuerpo se llaman tambi´en llamadas a procedimiento
Ejemplo
comida(Primero, Segundo, Tercero)
postre(Tercero).
Ambos reglas y hechos se denominan cl´
ausulas
6
Predicados: todas las cl´ausulas del programa cuyas cabezas
tienenel mismo nombre y aridad forman la definici´
on del predicado
Ejemplo
mascota(ricky).
mascota(X) <- animal(X), ladra(X).
mascota(X) <- animal(X), vuela(X).
El predicado mascota/1 tiene 3 cl´ausulas (un hecho y dos reglas)
7
Significado declarativo de hechos y reglas
El significado declarativo es el correspondiente en la l´ogica de primer
orden, de acuerdo a ciertas convenciones:
Hechos:establecen cosas que son ciertas
Ejemplo: el hecho
animal(ricky).
puede leerse como “ricky es un animal”
Reglas: las comas en el cuerpo denotan la conjunci´on:
p ← p1 , . . . , pm .
se debe leer como
p ← p1 ∧ . . . ∧ p m .
Una regla p ← p1, . . . , pm. tiene el significado “si p1 y . . . y pm
son ciertos, entonces p es cierto”
(“←” denota la implicaci´on l´ogica)
Ejemplo: la regla
mascota(X) <-...
Regístrate para leer el documento completo.