Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução ao Prolog: Linguagem Declarativa. Máxima aproximação com a Linguagem Natural. Desenvolvido para processamento computacional inteligente. Fácil desenvolvimento de sistemas especialistas. Sintaxe Básica “.” Finaliza uma linha de comando, equivalente ao “;” do Java. “,” é o “e” lógico, utilizado para somar sentenças. “;” é o “ou” lógico, utilizado para diferenciar sentenças. “:-“ é a condicional lógica, utilizada para expressar conseqüência. Definição de fatos: O Prolog trabalha com definição de Fatos onde esses Fatos são as verdades absolutas do programa. Todos os fatos têm um “relacionador” e unidades relacionadas Ex: homem(bob). genitor(bob, ana). Obs: Note que tanto o “relacionador” e as unidades são declarados com letra minúscula. Note que os “relacionadores” podem ter “n” unidades relacionadas. Definição de Regras: Para criar comportamentos e desvincular fatos desnecessários podem-se criar regras. avo(X,Y):- genitor(X,Z), genitor(Z,Y). Entendimento: Para qualquer X e Y, X é avo de Y se (1) X for genitor de Z qualquer e (2) Z for genitor de Y. Obs: Note que quando estamos tratando de variáveis à declaração é feita com letra maiúscula. Regras Recursivas: Procedimentos recursivos estão presentes em diversas áreas do conhecimento. A recursividade é um procedimento onde em sua definição “ele” chama ele próprio. Na programação Prolog seus principais aspectos são mantidos. Pode-se dividir as regras recursivas em duas parte: A regra principal onde o procedimento pode parar A regra recursiva onde o procedimento é chamado dentro da própria rotina. Ex: predecessor(X,Y):- pais(X,Y). % Caso base para recursividade predecessor(X,Y) pais(X,Z) , predecessor(Z,Y). % Caso recursivo onde predecessor contem uma rotina predecessor. Tipos de perguntas e resposta ao Prolog. Perguntas e Respostas: Pode-se fazer perguntas ao Prolog direcionada aos fatos. Ex: genitor(bob,ana). % bob é genitor de ana.? Resposta: True. Pode-se fazer perguntas compostas dos fatos. Ex: genitor(bob,ana), genitor(ana,bob). % bob é genitor de ana e ana é genitora de bob.? Resposta False. Obs: Note que perguntas compostas podem ser feitas tanto com “,” quanto com “;”. Pode-se fazer perguntas onde se espera uma resposta para completar: Ex: genitor(bob,X). % bob é genitor de que pessoa X? Resposta: X=ana. Obs: caso não seja a resposta desejada o usuário pode pedir mais respostas ao Prolog teclando “;”, caso tenha o Prolog apresentara uma nova resposta.
Compartilhar