15
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

Programação lógica

Embed Size (px)

Citation preview

Page 1: Programação lógica

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

Page 2: Programação lógica

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

Page 3: Programação lógica

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

Page 4: Programação lógica

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

Page 5: Programação lógica

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

Page 6: Programação lógica

Programação Lógica

Banco de Dados

“Te prometo algo muito durador”

É o conjunto !!

Blenda Guedes, Geraldo Gomes e Larissa Melo

Page 7: Programação lógica

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

Page 8: Programação lógica

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

Page 9: Programação lógica

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

Page 10: Programação lógica

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

Page 11: Programação lógica

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

Page 12: Programação lógica

Programação Lógica

Hands On Vamos definir o Rei da Sofrência

por PROLOG?

Blenda Guedes, Geraldo Gomes e Larissa Melo

Page 13: Programação lógica

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

Page 14: Programação lógica

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

Page 15: Programação lógica

FIM!!

Blenda Guedes, Geraldo Gomes e Larissa Melo