Professional Documents
Culture Documents
Descriptiva
CLASE 01
Introduccin
Programacin Lgica
Es un tipo de paradigma de programacin dentro de la programacin
declarativa.
Prolog
Es un lenguaje de programacin muy til para resolver problemas que
implican objetos y relaciones entre objetos. Est basado en los siguientes
mecanismos bsicos:
Unificacin
Estructuras de datos basadas en rboles
Backtrackin automtico
En Prolog
Sintaxis
En Prolog, los programas son construidos basados en terminos,
un termino puede ser una constante, una variable o una
estructura.
Cada termino se escribe con una secuencia de caracteres.
Letras maysculas
Podemos dividir los caracteres en 4 categoras:
Letras minsculas
A B C D E F S T U V W X Y Z
Dgitos
a b c d e f ...... s t u v w x y z
Signos
0123456789
+-*/\~^ <>:.?@#$&
Sintaxis
A continuacin se mencionan:
Las clusulas deben terminar con un punto (.).
Un identificador es cualquier cadena resultante de la combinacin de
caracteres alfanumricos (a-z,A-Z,0-9) y el subrayado (_). La creacin de
identificadores rige las sgtes convenciones:
Para las variables deben comenzar por una letra mayscula o subrayado
Para constantes, funciones y relacin por una letra minscula.
Objetos simples
Constantes
Nmeros
Variables
Constantes no
numricas
Objetos Estructurados
Constantes
Los nmeros tambin son de tipo constante. Ejemplos:
-17
0
2
99.9
512
8192 14765 67344 6.02e2.67e
23
La notacin
e es usado para expresar una potencia de 10. Por ejemplo el
2
numero -2.67e2
es -2.67*102 o solo -267; 6.02e-23 es 6.02*10-23.
Variable
Ejemplos
Ejemplo de nombres de variable:
_x, Actividad, X, Y, Numero, Nombre_predicado
[_x], Actividad*, x, &Y, Nmero, Nombre predicado
La razn de la incorrecin de c/u es la siguiente:
En[_x] y Actividad* los caracteres [, ] y * no pueden formar parte del
identificador.
En x el identificador comienza con una letra minscula.
&Y el carcter / no puede ser parte del identificador, sin mencionar que se
debe comenzar con una letra mayscula o el subrayado.
Nmero no es correcto porque no puede contenes una letra con tilde.
Nombre predicado no es correcto porque no puede contener espacios.
Ejemplos
Ejemplo de nombres de nombres constantes (o funcin o relacin):
elegir_menu, nil, un_padre, esPrimo, es_variable, nombre_predicado
Elegir/men, [nil], 1_padre, es>Primo, var, name
La razn de la incorrecin de c/u es la siguiente:
En elegir/menu, [nil] y es>Primo los caracteres /, [, ] y > no pueden
ser parte de un identificador.
El 1_padre no puede comenzar con un dgito
var y name son palabras reservadas que corresponden a nombres de
predicados predefinidos.
Operaciones Aritmticas
Operacin
Smbolo
Suma
Resta
Multiplicacin
Divisin entera
div
Mdulo
mod
Divisin
Operaciones de comparacin
Operacin
Smbolo
Mayor que
>
Menor que
<
>=
=<
Igual que
=:=
Distinto que
=\=
Ejemplo de Hechos
le_gusta_a(juan,maria).
valioso(oro).
tiene(juan,libro).
da(juan,libro,maria).
Los nombres tambin son arbitrarios y el programador decidir la interpretacin
que haga de ellos. La relacin le_gusta_a(juan,maria) es equivalente a la
relacin a(b,c), aunque para que la interpretacin sea ms sencilla, se
recomienda que los nombres se elijan de forma que ayuden a su interpretacin.
Los hechos no tienen que reflejar el mundo real necesariamente, pero ser
nica y exclusivamente lo que PROLOG tomar como verdadero. Un conjunto de
hechos (tambin llamados clusulas), junto con un conjunto de reglas, forman lo
que se llama una base de datos PROLOG.
::::-
a, b.
c, d.
e, f.
g.
p :(
a, b
;
c, d
;
e, f
;
g
).