1 / 30

PROLOG

PROLOG. Conceitos e Linguagens de Programação. Raranna Alves da Costa. Sumário. O que é P rolog? História Características Conceitos básicos Fatos A sintaxe e as regras do prolog Executando um programa em Prolog Campos de uso e algumas aplicações Bibliografia.

twila
Download Presentation

PROLOG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROLOG Conceitos e Linguagens de Programação RarannaAlvesda Costa

  2. Sumário • O que é Prolog? • História • Características • Conceitosbásicos • Fatos • A sintaxe e as regras do prolog • Executando um programaem Prolog • Campos de uso e algumasaplicações • Bibliografia

  3. O que é Prolog?

  4. Clique para adicionar texto • Prolog é umalinguagem de programaçãoque se enquadra no paradigma de ProgramaçãoemLógicaMatemática. É umalinguagem de usogeralque é especialmenteassociada com a inteligência artificial e linguísticacomputacional. • Linguagemconcreta, emqueacrescenta-se o Prolog puro com componentes extra-lógicos.

  5. Clique para adicionar texto • Apesar do longo tempo de desenvolvimento , essalinguagemaindanão é umalinguagemportáveljáqueemcadaimplementaçãousarotinascompletamentesdiferentes e incompatíveis entre si. • Exemplo de programa trivial aorealizar um loop, o interpretadornãoconseguerodar.

  6. História

  7. Clique para adicionar texto • O nome Prolog para a linguagem concreta foi escolhido por Philippe Roussel como uma abreviação de “PROgrammationenLOGique”. Foi criada em meados de 1972 por Alain Colmerauer e Philippe Roussel, baseados no conceito de Robert Kowalski da interpretação procedimental das cláusulas de Horn. • A motivação para isso veio da vontade de reconciliar o uso da lógica como uma linguagem

  8. Características

  9. Clique para adicionar texto • O Prolog é uma linguagem declarativa, ou seja, ao invés de o programa estipular a maneira de chegar à solução passo-a-passo, como acontece nas linguagens procedimentais ou orientadas a objeto, ele fornece uma descrição do problema que se pretende computar utilizando uma coleção de fatos e regras (lógica) que indicam como deve ser resolvido o problema proposto.

  10. Além de ser uma linguagem declarativa, outro fato que o difere das outras linguagens é a questão de não possuir estruturas de controle (if-else, do-while, for, switch) presentes na maioria das linguagens de programação. Para isso utilizamos métodos lógicos para declarar como o programa deverá atingir o seu objetivo. • Um programa em Prolog pode rodar em um modo interativo, o usuário poderá formular queries utilizando os fatos e as regras para produzir a solução através do mecanismo de unificação.

  11. Clique para adicionar texto • O Prolog é baseado num subconjunto do cálculo de predicados de primeira ordem, o que é definido por cláusulas de Horn. A execução de um programa em Prolog é efetivamente a prova de um teorema por resolução de primeira ordem. Alguns conceitos fundamentais são unificação, recursão, e backtracking.

  12. Fatos

  13. Clique para adicionar texto • Em Prolog são fornecidos os fatos e as regras para uma base de dados, que posteriormente serão executadas consultas em cima da base de dados. • A estrutura de um fato é formada por um predicado, seus argumentos (objetos) e finalizamos a instrução com um ponto(.) equivalente ao ponto-vírgula das linguagens comuns de programação

  14. Clique para adicionar texto • O predicado é a relação sobre os quais os objetos irão interagir. Ex.: predicado(argumento1,argumento2...). Relação entre 2 objetos: -> amiga(joana, maria). Característica do objeto: -> homem(jose). Obs.: Nomescomeçamporletraminúscula Ordem dos objetospodeminferir no resultado

  15. A sintaxe e regras

  16. Clique para adicionar texto • Prolog não emprega tipos de dados do mesmo modo que as linguagens de programação mais comuns normalmente fazem. Todos os dados são tratados como sendo de um único tipo. • Ou seja, os elementos léxicos utilizados na sua declaração determinam se esse termo será um número, um texto, uma variável, uma estrutura complexa e assim por diante.

  17. O escopo de uma variável é a asserção (fato, regra, ou consulta) na qual aparece. • O escopo de qualquer outro nome (constante, nome de função, ou nome de predicado) é todo o programa. Obs.: Isto significa que um nome de variável pode ser utilizado e reutilizado a vontade no programa para denotar variáveis diferentes, enquanto qualquer outra notação representa, ou é, o mesmo objeto para o programa todo.

  18. Átomos: Um átomo é uma seqüência constituída de letras e números, mas iniciando com uma letra minúscula. Se um átomo não alfanumérico é necessário, pode-se usar qualquer seqüência entre aspas simples . Ex.: • começando com letra minúscula: pedrohenrique_iv • como uma sequência de caracteres entre aspas simples: 'quem é você?' 'eu não sei'.

  19. Números: Um número é uma seqüência de dígitos, permitindo também os sinais de . (para números reais), - (número negativo) e e (notação científica). Ex.: • 589 • 5.89

  20. Variáveis: São como uma incógnita, cujo valor é desconhecido a princípio mas, após descoberto, não sofre mais mudanças. Um tipo especial de variável, a variável anônima (explicada mais adiante), é uma expressão que significa 'qualquer variável', e é escrita como um único subtraço (_). Ex.: • X Nome Rei_da_Espanha

  21. Strings: São normalmente escritas como uma seqüência de caracteres entre aspas. É comum serem representadas internamente como listas de códigos de caracteres, em geral utilizando a codificação local ou Unicode. Ex.: • X Nome Rei_da_Espanha

  22. Operadores: Relacionais: • Igualdade: = • Diferença: \= ou <> • Menorque: < • Maiorque: > • Menorouigual: =< ou <= • Maiorouigual: >= Aritméticos: • + • - • * • / • mod • is

  23. Entrada e saída: read() e write() Ex.:ola :- read(X), write('Olá '), write(X). Faremos a chamada:?- ola. 'Luciano'.

  24. Regras: • Para utilizarmosumaregra , se usa o símbolo “:-” Ex.: Dados os fatos:pai(arthur,silvio).pai(arthur,carlos).pai(carlos,xico).pai(silvio,ricardo). Utilizaremos a seguinte regra:avo(X,Z) :- pai(X,Y), pai(Y,Z). Isso significa que se alguém é pai de uma pessoa, que por sua vez é pai de outra pessoa, então ele é avô. Vamos realizar uma querie para conferir a regra:?- avo(arthur,xico),avo(arthur,ricardo). Resposta : “YES”

  25. Executando um programa

  26. Software Swi-Prolog 6.4.1 plataforma Windows : • Criação de um novo arquivofonte .pl • Edição de .pl jáexistente • Execução de arquivofinalizado

  27. Campos de uso e algumasaplicações

  28. Como podemos ver, o Prolog é uma linguagem muito poderosa, principalmente na área de Inteligência Artificial onde é líder absoluta. Entre as implementações do Prolog, podemos citar o Visual Prolog (Turbo Prolog), o SWI Prolog, GNU Prolog, Amzi! Prolog, entre muitas outras já existentes.

  29. http://www.linhadecodigo.com.br/Artigo.aspx?id=1697 • PROLOG. Disponível em: http://www.din.uem.br/ia/ferramen/prolog/. • PROLOG, Wikipédia - Enciclopédia livre. Disponível em: http://pt.wikipedia.org/wiki/Prolog. • JACQUES ROBIN, Slides sobre Fundamentos do Prolog. Bibliografia

  30. Obrigada !

More Related