Você está na página 1de 7

INF2217 Lgica e Especificao

PROLOG
Marco A. Casanova

6/8/2008

(c) MAC / KKB - PUC-Rio

Referncias
[CGF] Sec. 10.1 a 10.3 [BL] Sec. 6.1 a 6.4

6/8/2008

(c) MAC / KKB - PUC-Rio

Sintaxe Bsica de Prolog


Definies:
tomo constante varivel varivel annima termo frmula atmica literal clusula unitria, definida, objetivo
6/8/2008 (c) MAC / KKB - PUC-Rio 3

Sintaxe Bsica de Prolog


Definio:
um programa Prolog uma sequncia P de clusulas definidas uma consulta Prolog uma clusula objetivo C uma resposta de C uma substituio para as variveis de C uma resposta correta de C a P uma resposta de C tal que P |= C

Observaes:
a ordem dos literais em uma clusula importante a ordem das clusulas em um programa importante uma resposta pode ter variveis, ou seja, no precisa ser uma substituio bsica
6/8/2008 (c) MAC / KKB - PUC-Rio 4

Semntica Operacional de Prolog


Mquina Prolog:

6/8/2008

(c) MAC / KKB - PUC-Rio

Semntica Operacional de Prolog


Mquina Prolog (cont.):
entrada:
um programa Prolog P uma consulta Prolog C

saida:
FALHA: no h resposta correta de C a P : uma resposta correta de C a P (a mquina pode no parar)

6/8/2008

(c) MAC / KKB - PUC-Rio

Semntica Operacional de Prolog


Mquina Prolog (cont.):
a mquina simula um caminhamento em pr-ordem por uma rvore de resoluo-LSD construda da seguinte forma:
rotula-se a raiz com C para cada n N da rvore com rtulo L1 &... & Lm.
seleciona-se o L1 para cada clusula MM1 &... & Mn. ocorrendo em P, na ordem em que ocorrem em P e renomeando variveis se necessrio, se M unifica com L1, tendo como unificador mais geral, gera-se um novo filho de N rotulado com a clusula objetivo (M1 &... & Mn & L2 &... & Lm).

6/8/2008

(c) MAC / KKB - PUC-Rio

Semntica Operacional de Prolog


Exemplo:

6/8/2008

(c) MAC / KKB - PUC-Rio

Semntica Operacional de Prolog

6/8/2008

(c) MAC / KKB - PUC-Rio

Semntica Operacional de Prolog


Exemplo:

6/8/2008

(c) MAC / KKB - PUC-Rio

10

Semntica Operacional de Prolog

6/8/2008

(c) MAC / KKB - PUC-Rio

11

Implementao da Mquina Prolog


Estratgia de implementao:

6/8/2008

(c) MAC / KKB - PUC-Rio

12

Implementao da Mquina Prolog

6/8/2008

(c) MAC / KKB - PUC-Rio

13

Implementao da Mquina Prolog

6/8/2008

(c) MAC / KKB - PUC-Rio

14

Você também pode gostar