Programación
en Lógica
INTEGRANTE
JULIO MONTECINO Q.
Evolución
Decada 70
Crisis del sotfware
Alternativas
PROLOG
Programación en Lógica
Resuelve problemas que
envuelven objetos y las
relaciones entre ellos.
10/16/2015
PROLOG, Programación en Lógica
Altos Costos
Disminución
Costos
Aplicaciones
Inteligencia Artificial
Robótica
3
Estructura
Reglas
Hechos
Expresan relaciones
entre objetos.
Un hecho depende
de otro.
Características
Características
Los nombres de objetos deben
comenzar con letra minúscula.
Primero se escribe la relación,
luego los objetos separados por
comas y encerrados entre ( )
Al final de un hecho debe ir
un “.”.
Orden de los objetos, debe ser
coherentes a lo largo de la base
de los hechos.
10/16/2015
Variables
Representa objetos
que el mismo prolog
determina.
Consiste en una cabeza y un
cuerpo unido por el signo “:-”
La cabeza esta formada por un
único hecho.
El cuerpo puede ser uno o mas
hechos, separados por una “,”,
que actúa como el “Y” logico.
Las reglas finalizan con un “.”
PROLOG, Programación en Lógica
Características
Puede ser:
Instanciada.
No instanciada
Los nombres de
variables comienzan
con letra mayuscula.
4
un coche tiene ruedas
hechos
tiene(coche,ruedas).
Relación
objetos
tiempo(lluvioso).
suelo(mojado).
:-
suelo(mojado).
suelo(mojado).
:-
tiempo(lluvioso).
suelo(mojado).
10/16/2015
PROLOG, Programación en Lógica
5
Al igual que otros lenguajes, existe la
asociatividad de los operadores.
3+2*6 =3+(2*6)
is
Operador infijo.
‘6 is 4+2’
X is 4+3
consult
Leer y compilar un
programa, o para añadir
cláusulas a un fichero.
consult(fichero).
recon
Reemplaza una cláusula
por la que se encuentra
en la base de hechos.
recon(fichero).
10/16/2015
PROLOG, Programación en Lógica
6
forget
Eliminar hechos de la
base de datos.
exitsys
Nos devuelve al
sistema operativo.
corte
Controlar el proceso
de reevaluación.
forget(fichero).
“!”
regla :- hecho1, hecho2, !, hecho3, hecho4, hecho5.
10/16/2015
PROLOG, Programación en Lógica
7
write
nl
read
10/16/2015
Comillas simples
write(‘hello world’)
encierran constantes y
las dobles encierran una
lista.
Fuerza un retorno
de carro en la
salida (enter)
write(‘linea 1’),nl,write(‘linea 2’)
linea 1
linea 2
Lee un valor de teclado read(X).
y finaliza cuando se
introduce un punto “.”
PROLOG, Programación en Lógica
8
PROLOG1
Trabaja con los S.O. MS-DOS, CP/M86, RSX-11M Y RT-11.
PROLOG
QUINTUS
Utilizada en S.O. UNIX y VMS. Altas
velocidades de ejecución.
MACPROLOG
Trabaja bajo S.O. MAC-OS. Combina
sofisticadas técnicas de programación
de inteligencia artificial.
10/16/2015
PROLOG, Programación en Lógica
9
Orientado
a la
inteligencia artificial.
Facilidad
Accesibilidad
Utiliza
a
de
programación.
pocos comandos.
todo usuario.
Asociatividad
operadores.
10/16/2015
de los
Diferentes
ambientes
de trabajo.
PROLOG, Programación en Lógica
10
Programación
en Lógica