Prolog1
✩
Sistemas Inteligentes, 12-13
1
Programa¸ c˜ ao Prolog
• Programas Prolog s˜ao representados por cl´ausulas de Horn, um ausula s´o subconjunto de l´ogica de primeira ordem, onde cada cl´ pode conter no m´aximo um literal positivo na cabe¸ca da cl´ausula (m´ aximo um consequente positivo).
• em Prolog, cada cl´ausula ´e representada por cabeca :- corpo.
• Prolog: linguagem declarativa.
✫
✪
✬
✩
Sistemas Inteligentes, 12-13
2
Programa¸ c˜ ao Prolog
• Programa: conjunto de fatos e/ou regras que definem rela¸co˜es entre objetos.
• Fatos: rela¸co˜es consideradas sempre verdadeiras (axiomas).
• Regras: Rela¸co˜es que s˜ao verdadeiras ou falsas dependendo de outras rela¸co˜es.
• Computa¸ca˜o de um programa em l´ogica ´e a dedu¸ca˜o dos consequentes do programa.
✫
✪
✬
Sistemas Inteligentes, 12-13
✩
3
Programa¸ c˜ ao Prolog
• Exemplos:
%Fatos:
valioso(ouro). sexo_feminino(jane). pai(john,mary).
Regras: gosta(john,X) :gosta(X,vinho). passaro(X) :animal(X), tem_penas(X). irma(X,Y) :sexo_feminino(X), pais(M,F,X), pais(M,F,Y).
humano(socrates). ateniense(socrates). • Aten¸ca˜o `a sintaxe!
✫
✪
✬
Sistemas Inteligentes, 12-13
Programa¸ c˜ ao Prolog: A Linguagem – Sintaxe
✩
4
• Termos:
– Vari´ aveis: X, Y, C1, ABC, Input
– Constantes: prolog, a, 123, ’rio de janeiro’
– Estruturas (termos compostos): dono(john,livro(ulysses,autor(james,joyce))) • Caracteres: letras mai´ usculas, letras min´ usculas, d´ıgitos, sinais do teclado.
• S´ımbolos especiais: :- ; , .
• Coment´ arios: – linha: % isto e’ um comentario.
– texto: /* este tambem e’ um coment´ ario */
✫
✪
✬
Sistemas Inteligentes, 12-13
Programa¸ c˜ ao Prolog: A Linguagem – Sintaxe
✩
5
• Operadores: +, -, *, / etc.
• Igualdade e “matching”: a(b,c,d(e,F,g(h,i,j))) = a(B,C,d(E,f,g(H,i,j)))
• Aritm´etica n´ umeros: =, \= , <, >, =<, >=
• Aritm´etica strings/termos: ==, \== @<, @>
• Observa¸ca˜o: Prolog n˜ ao avalia express˜oes que n˜ ao apare¸cam explicitamente no corpo da cl´ausula no contexto