Prolog

13
PROLOG André Luís Pitombeira

Transcript of Prolog

Page 1: Prolog

PROLOG

André Luís Pitombeira

Page 2: Prolog

Introdução o  Programação Declarativa:

n  A linguagem de programação Prolog difere de outras linguagens mais convencionais, como Pascal, Fortran, C e outras. O Prolog é uma linguagem de programação declarativa, baseada na lógica matemática

o  Programming in Logic: n  O nome Prolog vem do inglês Programming in Logic, que significa

programando em lógica. O uso deste nome é porque o Prolog está tentando descobrir se uma afirmação é verdadeira ou falsa, ou está tentando encontrar alguma combinação de variáveis que torne uma afirmação verdadeira.

o  Executando um programa em Prolog: n  É fazer uma consulta na sua base de dados. E uma consulta nada mais

é do que uma chamada de uma cláusula do programa, equivalendo a uma solicitação para provar se o que pedimos é verdadeiro de acordo com a base de dados do programa.

Page 3: Prolog

Histórico o  Origem da expressão “Programando em

Lógica”: n  um método computacional, que permitisse uma

interpretação procedimental da lógica e estabelecesse as condições adequadas para entende-la como uma linguagem de programação de uso geral.

o  Desenvolvimento Moderno.

Page 4: Prolog

Paradigma Lógico o  Prolog é uma linguagem de programação que se enquadra no paradigma

de Programação em Lógica Matemática. É uma linguagem de uso geral que é especialmente associada com a inteligência artificial e lingüística computacional. Consiste numa linguagem puramente lógica, que pode ser chamada de Prolog puro, e numa linguagem concreta, a qual acrescenta o Prolog puro com componentes extra-lógicos.

o  O Prolog é uma linguagem declarativa, você especifica o que se sabe e o que deva ser feito. É também mais direcionada ao conhecimento e menos direcionada aos algoritmos. Não possui estruturas de controle como do-while, repeat-until, if-then-else, for, case ou switch como encontrados em outras linguagens: em Prolog utilizam-se métodos lógicos para declarar como o programa atinge o seu objetivo.

Page 5: Prolog

Paradigma Lógico(cont.) o  Um programa pode rodar num modo interativo, a partir de consultas

(queries) formuladas pelo usuário, usando a base de dados (os 'fatos') e as regras relacionais (essencialmente implicações lógicas: se.. então), e o mecanismo de unificação para produzir (por uma cadeia de deduções

lógicas) a solução. o  Comparativo:

Page 6: Prolog

Linguagem Prolog o  Termos: ü  Termo: Em Prolog é uma constante, uma variável ou uma estrutura.

ü  Constante: É um átomo ou um número inteiro.

ü  Átomo: É uma cadeia de letras, de dígitos e de grifos que se inicia com uma letra minúscula ou uma cadeia de quaisquer caracteres ASCII imprimíveis delimitados por apóstrofos.

ü  Variável: É qualquer cadeia de letras, de dígitos e de grifos que se inicia com uma letra maiúscula

ü  Estrutura:Representam as proposições atômicas do cálculo de predicados, e sua forma geral é a mesma: functor(lista de parâmetros).

Page 7: Prolog

Linguagem Prolog o  Cláusulas de Horn: ü  Cláusula de Horn sem Cabeça:

ü  homem(andre).

ü  Cláusula de Horn com Cabeça: ü  antepassado(andre, joao) :- pai(andre,joao).

Page 8: Prolog

Linguagem Prolog o  Instruções Relativas a Metas:

n  Utilizadas para provar Teoremas, que queremos que o sistema prove ou desaprove. Essas proposições são chamadas metas ou consultas.

n  Ex.: homem(fred).

o  Processo de Inferência do Prolog: n  O processo de inferência deve encontrar um encadeamento de regras

de inferência e/ou de fatos no banco de dados que ligam a meta a um ou mais fatos no banco de dados.

n  homem(bob). n  pai(bob). n  homem(x) :- pai(x).

Page 9: Prolog

Linguagem Prolog o  Aritmética Simples:

n  O Prolog permite uma sintaxe mais abreviada para cálculos aritméticos com o operador is. Este toma uma expressão aritmética como seu operando direito e variável como seu operando esquerdo.

n  A is B/ 17 + C. o  Listas:

n  São sequências de qualquer numero de elementos, em que estes podem ser átomos ou quaisquer outros termos, inclusive outras listas

n  [maça, ameixa, morango]. n  nova_lista[maça, ameixa, morango] n  nova_lista([Cabeça da Nova Lista | Cauda da Nova Lista] ) n  append([Cabeça|Lista_1], Lista_2, [Cabeça, Lista_3]) :-

append(Lista_1, Lista_2, Lista_3).

Page 10: Prolog

Especificação de Problemas em Prolog o  1º Passo: Qual é o Problema?

n  Sócrates e a Imortalidade. q  2 º Passo: Precisamos de um editor de texto. q  3 º Passo: Declaramos os fatos e as regras:

q  homem(socrates). q  mortal(X) :- homem(X).

q  4 º Passo : Carregamos o Programa. q  5 º Passo : Fazemos as consultas:

q  Ex.: homem(socrates). q  O programa irá responder com Yes ou No.

Page 11: Prolog

Conclusão o  O uso do Prolog trouxe inúmeros benefícios

para computação, sobretudo para áquelas áreas que foram diretamente beneficiadas, como a Inteligência Artificial. Além disto, o Prolog tem se mostrado uma boa solução para problemas cujo domínio não encontra uma boa solução em outros paradigmas de linguagens de programação, como o Funcional e o Imperativo.

Page 12: Prolog

Bibliografia o  Wikepedia: Prolog. Disponível em:

http://pt.wikipedia.org/wiki/Prolog. Acesso em: 15 junho 2009.

o  Willers, D. e Renck, M.. “A Linguagem PROLOG“. Faculdades de Taquara. Taquara/RS.

o  Palazzo, L.. “Introdução a Linguagem PROLOG”. Educat. Pelotas, 1997.

o  Othero, G. e Menuzzi S..”Lingüística Computacional”. Ed. Parábola. São Paulo/SP, 2005.

o  Sebesta, R. W.. “Conceitos de Linguagens de Programação”. Ed. Bookman. São Paulo/SP, 2002.

Page 13: Prolog

Fim