IA Aula 09 Prolog 2012
Aula 09 – Introdução ao Prolog
Edirlei Soares de Lima
<elima@inf.puc-rio.br>
Introdução
• O Prolog é uma linguagem de programação baseada em lógica de primeira ordem.
• Não é padronizada.
• Algumas implementações: SICStus Prolog, Borland
Turbo Prolog, SWI-Prolog...
• Geralmente é interpretado, mas pode ser compilado.
Prolog x Outras Linguagens
• Linguagens Procedimentais (C, Pascal, Basic...):
Especifica-se como realizar determinada tarefa.
• Linguagens Orientadas a Objetos (C++, Java, C#...):
Especifica-se objetos e seus métodos.
• Prolog: Especifica-se o quê se sabe sobre um problema e o quê deve ser feito. É mais direcionada ao conhecimento e menos direcionada a algoritmos.
Programação em Prolog
• Programar em Prolog envolve:
– Declarar alguns fatos a respeito de objetos e seus relacionamentos. – Definir algumas regras sobre os objetos e seus relacionamentos. – Fazer perguntas sobre os objetos e seus relacionamentos. SWI-Prolog
• Open Source.
• Multiplataforma.
• Possui interface com as linguagens C e C++.
• www.swi-prolog.org
SWI-Prolog - Interface
Sentenças Prolog
• Nomes de constantes e predicados iniciam sempre com letra minúscula. • O predicado (relação unária, n-ária ou função) é escrito primeiro e os objetos relacionados são escritos depois entre parênteses. • Variáveis sempre começam por letra maiúscula.
• Toda sentença termina com ponto “.”
• Exemplo: gosta(maria, jose).
Operadores Lógicos
Símbolo
Conectivo
Operação Lógica
:-
IF
Implicação
,
AND
Conjunção
;
OR
Disjunção
not
NOT
Negação
Operadores Relacionais
Operador
Significado
X=Y
Igual a
X \= Y
Não igual a
X<Y
Menor que
Y>X
Maior que
Y =< X
Menor ou igual a
Y >= X
Maior ou igual a
Regras
• Regras são utilizadas para expressar dependência entre um fato e outro fato:
– criança(X) :- gosta(X,sorvete).
– criança(X) :- not odeia(X,sorvete).
• Ou grupo de fatos:
– avó(X,Z) :- (mãe(X,Y),mãe(Y,Z)); (mãe(X,Y),pai(Y,Z)).
•