1. Programação Lógica
Por favor, não implora Porque homem não chora
Você que machucou meu coração Me fez chorar
“
...
”
Arrocha, Pablo
Blenda Guedes, Geraldo Gomes e Larissa Melo
2. Programação Lógica
Roteiro
•O que é?
•Conceito de BD para PL
•História por rabiscos
•Quem e para quê?
•Prolog - what, up and running
•Hands On
•Dúvidas
Blenda Guedes, Geraldo Gomes e Larissa Melo
3. Programação Lógica
O que é?
Lógica matemática para a programação!!
PLANER
PROLOG
QLISP
SQL
QA-4
POPLER
CONNIVER
MERCURY
ETHER
LINGUAGENS DE PROGRAMAÇÃO LÓGICA
Descrevemos o problema e não a solução! Declaramos o que nós queremos!!
Minhas músicas usam programação Lógica!
Cláusula de Horn;
Lógica Proposicional;
Lógica de Primeira Ordem.
Blenda Guedes, Geraldo Gomes e Larissa Melo
4. Programação Lógica
O que é?
O QUE SE QUER
...encosta em meu nariz e faz Bilu bilu bilu bilu
O QUE SE FAZ
“
”
...Escute o meu desabafo Eu quero te falar
“
”
Na Programação lógica se diz o que se quer!
O QUE deve ser feito!
COMO deve ser feito!
doendo(bemfeito). chorando(bemfeito).
?-doendo(X).
X=bemfeito.
?-chorando(X).
X=bemfeito.
trecho = raw_input('Primeira parte: ')
trecho2 = raw_input('Segunda parte: ')
Trecho_final = trecho + " " +trecho2
print Trecho_final
Blenda Guedes, Geraldo Gomes e Larissa Melo
5. Programação Lógica
O que é?
1. Declarar fatos primitivos sobre um domínio;
2. Definir regras que expressam relações entre os fatos de um domínio;
3. Fazer perguntas sobre um domínio.
Regras
Fatos
“Pablo é um cantor”
cantor(pablo).
“Larissa gosta de Pablo”
gostar(larissa,pablo).
gostar(larissa,pablo).
gostar(rafaella,pablo).
sofrencia(X,Y):-gostar(Y,Z),gostar(X,Z).
?-sofrencia(larissa,rafaella).
true
Blenda Guedes, Geraldo Gomes e Larissa Melo
6. Programação Lógica
Banco de Dados
“Te prometo algo muito durador”
É o conjunto !!
Blenda Guedes, Geraldo Gomes e Larissa Melo
7. Programação Lógica
História por rabiscos
Vai lembrar de tudo que vivemos
Vai lembrar dos momentos que passamos
“
”
Alain Colmerauer e Philippe Roussel
“PROgrammation en LOGique”
Robert Kowalski
Robert Pasero e Jean Trudel
PROLOG
Blenda Guedes, Geraldo Gomes e Larissa Melo
8. Programação Lógica
Quem e para quê?
Sistemas Baseados em Conhecimento
Bancos de Dados “Inteligentes”
Sistemas Especialistas
Processamento da Linguagem Natural
Indústria de aviação
Instituto Nacional de Meteorologia
Modelagem ambiental
Mineração de dados
Construção de compiladores
Vocês também!!
Todos usam e gostam da essência das minhas músicas!
Blenda Guedes, Geraldo Gomes e Larissa Melo
9. Programação Lógica
Prolog – what, up and running
“Prolog is an AI weapon, you tell it what to do, which it does but then it also builds some terminators to go back in time and kill your mom.” – 9gag (If Programming Languages Were Weapons)
Blenda Guedes, Geraldo Gomes e Larissa Melo
10. Programação Lógica
Prolog – what, up and running
“Prolog é uma linguagem de Turing completa o que significa que pode implementar qualquer algoritmo.”
“Larissa gosta de Pablo e de Wando”
gosta(larissa, pablo), gosta(larissa, wando).
“Larissa gosta de quem?”
?-gosta(larissa,X).
“Larissa gosta de ouvir Pablo na bad”
ouvir(larissa, pablo):- situacao(bad).
É baseado em:
•Fatos
•Consultas
•Regras
Termo
PROLOG
Conjunção
,
Disjunção
;
Implicação
:-
Termino de Cláusula
.
Conclusão
Condição
Blenda Guedes, Geraldo Gomes e Larissa Melo
11. Programação Lógica
Prolog – what, up and running
1. Download baby!
http://portableapps.com/apps/development/swi-prolog_portable
2. Install (next...next..next...)
3. Run!
4. Criar arquivo com os fatos e regras... Na extensão PROLOG(.pl)
5. Da um import no arquivo em (File->Consult);
6. Agora é só fazer as consultas! ;)
Vamos colocar para Funfar!
Blenda Guedes, Geraldo Gomes e Larissa Melo
12. Programação Lógica
Hands On
Vamos definir o Rei da Sofrência por PROLOG?
Blenda Guedes, Geraldo Gomes e Larissa Melo
13. Programação Lógica
“
Estou indo embora
Por favor, não implora
A mala já está lá fora
”
Dúvidas??
Blenda Guedes, Geraldo Gomes e Larissa Melo
14. Programação Lógica
Referências
http://letras.mus.br/pablo/ http://en.wikipedia.org/wiki/Turing_completeness http://www.inf.puc-rio.br/~inf1621/logica.pdf Slides da Prof. Elaine Faria - UFU, 2014 - Programação Lógica. Sintaxe Prolog Slides do Prof. Gabriel Alves – UFRPE, 2014 – Programação lógica http://pt.slideshare.net/rafaelbozzetti/seminrio-prolog http://en.wikipedia.org/wiki/Prolog http://en.wikipedia.org/wiki/Logic_programming http://9gag.com/gag/anXEbe0
Blenda Guedes, Geraldo Gomes e Larissa Melo