Prolog
-
Upload
andre-pitombeira -
Category
Documents
-
view
340 -
download
0
Transcript of Prolog
PROLOG
André Luís Pitombeira
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.
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.
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.
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:
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).
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).
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).
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).
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.
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.
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.
Fim