SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Linguagem Prolog

        Grupo:
        Cael London Vieira
        Mateus Felipe
        Rafael Pereira Bozzetti
        Walter da Silva Fernandes
Prolog - Definição Geral


    Prolog é uma linguagem Declarativa, ou seja,
    limita-se a descrever um problema.

    Define uma coleção de Fatos e Relações sobre
    determinado objeto ou problema.

    Utiliza-se de métodos lógicos para declarar
    como o programa deve atingir o seu objetivo.

    Possibilita que consultas sejam feitas na base
    de conhecimento.
Prolog - Histórico


    Foi criada em 1971 por Alain Colmerauer e
    Robert Pasero na Universidade de
    Marselha, França.


    Não foi idealizada como uma linguagem de
    programação, mas para o processamento de
    linguagens naturais, como o Português e o
    Inglês.
Prolog - Domínio da Aplicação

    Lógica matemática, prova de teoremas e semântica.

    Compiladores

    Soluções de equações simbólicas

    Banco de dados relacionais

    Linguagem Natural

    Aplicações, como jogos de Xadrez e Damas

    Planejamento automático de atividades

    Análise Bioquímica e projetos de novas drogas
Prolog - Características


    Provador de teoremas (Verdade ou Falso)

    Linguagem declarativa

    Não emprega tipos de dados

    Linguagem é interpretada

    Diferente de programação estruturada.

    Não existe variáveis globais
Elementos da Linguagem

    Fatos: Determina uma relação entre objetos
    existentes. Exemplo: gosta(maria,X).


    Regras: Determina um relacionamento entre Fatos
    Exemplo: gosta(X,maria) :- gosta(X,peixe).


    Consultas: Infere pesquisas na base de
    conhecimento à procura de cláusulas consultadas.
    Exemplo: ?- gosta(X,maria).
Fatos
                      gosta( joao,maria ).

                          Relação        Objeto

   Relações e Objetos devem começar com letra minúscula.
   Objetos são escritos dentro de parênteses.
   Todo Fato deve terminar com ponto.
   Uma Relação pode receber mais de um Objeto.
Exemplo: gosta( joao, maria ).
   A ordem dos objetos é importante.
gosta( joao, maria ). é diferente de gosta( maria, joao ).
Regras

      luz(acesa) :- interruptor(ligado).


    Determina um relacionamento entre Fatos.

    O “:-” significa “SE”, portanto na expressão acima, a
    luz está acesa se o interruptor estiver ligado.

    Pode-se utilizar variáveis, devem ser em maiúsculo.

    O conteúdo da variável após ser instanciada não pode
    ser mudado.
, =E
                      Consultas
                                                     ; = OU
                 gosta(X, esporte),
                 gosta(X, futebol).


    Ao fazer uma consulta a base de conhecimento, será
    realizado uma procura por relações entre os termos.

    Referente a consulta, caso exista relação será
    retornado true, senão fail.

    Pode-se utilizar variáveis nas consultas, neste caso
    todos os termos serão pesquisados.
Operadores Relacionais
X=Y          X e Y são iguais;
X = Y       X e Y são diferentes;
X<Y          X é menor que Y;
X>Y          X é maior que Y;
X =< Y       X é menor ou igual a Y;
X >= Y       X é maior ou igual a Y.
X =:= Y      X e Y são iguais (p/ números);
X == Y      X e Y são diferentes (p/ números).
Operadores Aritméticos
X+Y       Soma de X e Y;
X–Y       Diferença de X e Y;
X*Y       Multiplicação de X por Y;
X/Y       Divisão de X por Y;
X mod Y   Resto da divisão de X por Y.
Ambiente de Desenvolvimento

    Plugin Eclipse
http://sewiki.iai.uni-bonn.de/research/pdt/start



    Windows: SWI-Prolog-Editor
http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swi
   prolog/indexe.html



    Linux (debian/ubuntu):
    apt-get install swi-prolog
Exemplo de Código

fatorial(0,1).
fatorial(N,F) :-
    N>0,
    N1 is N-1,
    factorial(N1,F1),
    F is N * F1.
Exercício Proposto
Na base de                   gosta( julio, peixe ).
 conhecimento ao lado,       gosta( julio, maria ).
 como ficariam as            gosta( maria, livro ).
 consultas?
                             gosta( joao, livro ).

    Quem gosta de livro?     gosta( joao, peixe ).

    Quem gosta de livro e    gosta( maria, chocolate ).
    chocolate?               gosta( maria, peixe ).
                             gosta( joao, cerveja ).

    Quem gosta de livro ou   gosta( joao, futebol).
    chocolate?
Resolução do Exercício

    Quem gosta de livro?
gosta(X,livro).


    Quem gosta de livro e chocolate?
gosta(X,livro),gosta(X,chocolate).


    Quem gosta de livro ou chocolate?
gosta(X,livro);gosta(X,chocolate).

Más contenido relacionado

La actualidad más candente

Introdução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e PrologIntrodução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e Prologelliando dias
 
Aula de Prolog 08 - Unificação
Aula de Prolog 08 - UnificaçãoAula de Prolog 08 - Unificação
Aula de Prolog 08 - UnificaçãoFabio Moura Pereira
 
Aula de Prolog 07 - Estruturas de Dados
Aula de Prolog 07 - Estruturas de DadosAula de Prolog 07 - Estruturas de Dados
Aula de Prolog 07 - Estruturas de DadosFabio Moura Pereira
 
Introdução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaIntrodução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaLeinylson Fontinele
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Motalucianacmota
 
Aprendizado de Máquina em Linguagem Natural
Aprendizado de Máquina em Linguagem NaturalAprendizado de Máquina em Linguagem Natural
Aprendizado de Máquina em Linguagem NaturalBeatriz Albiero
 
Técnicas de Programação Funcional
Técnicas de Programação FuncionalTécnicas de Programação Funcional
Técnicas de Programação FuncionalLambda 3
 
Introdução Programação Funcional
Introdução Programação FuncionalIntrodução Programação Funcional
Introdução Programação FuncionalNatan Mai
 
Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Ismar Silveira
 
Calculo numerico capitulo 2
Calculo numerico capitulo 2Calculo numerico capitulo 2
Calculo numerico capitulo 2Bruno Mulina
 
TDC 2014 POA: Programacao funcional Por que Importa?
TDC 2014 POA: Programacao funcional Por que Importa?TDC 2014 POA: Programacao funcional Por que Importa?
TDC 2014 POA: Programacao funcional Por que Importa?Diego Pacheco
 

La actualidad más candente (20)

Introdução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e PrologIntrodução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e Prolog
 
Aula de Prolog 08 - Unificação
Aula de Prolog 08 - UnificaçãoAula de Prolog 08 - Unificação
Aula de Prolog 08 - Unificação
 
Aula Prolog 09 - Listas
Aula Prolog 09 - ListasAula Prolog 09 - Listas
Aula Prolog 09 - Listas
 
Aula Prolog 02
Aula Prolog 02Aula Prolog 02
Aula Prolog 02
 
Aula de Prolog 07 - Estruturas de Dados
Aula de Prolog 07 - Estruturas de DadosAula de Prolog 07 - Estruturas de Dados
Aula de Prolog 07 - Estruturas de Dados
 
Aula Prolog 03
Aula Prolog 03Aula Prolog 03
Aula Prolog 03
 
Prolog 04 - Regras
Prolog 04 - RegrasProlog 04 - Regras
Prolog 04 - Regras
 
Introdução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaIntrodução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. Costa
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
01
0101
01
 
Lpiii dp-apostila
Lpiii dp-apostilaLpiii dp-apostila
Lpiii dp-apostila
 
Aprendizado de Máquina em Linguagem Natural
Aprendizado de Máquina em Linguagem NaturalAprendizado de Máquina em Linguagem Natural
Aprendizado de Máquina em Linguagem Natural
 
Função
FunçãoFunção
Função
 
Técnicas de Programação Funcional
Técnicas de Programação FuncionalTécnicas de Programação Funcional
Técnicas de Programação Funcional
 
First Order Logic
First Order LogicFirst Order Logic
First Order Logic
 
Introdução Programação Funcional
Introdução Programação FuncionalIntrodução Programação Funcional
Introdução Programação Funcional
 
Calculo1 aula05
Calculo1 aula05Calculo1 aula05
Calculo1 aula05
 
Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10
 
Calculo numerico capitulo 2
Calculo numerico capitulo 2Calculo numerico capitulo 2
Calculo numerico capitulo 2
 
TDC 2014 POA: Programacao funcional Por que Importa?
TDC 2014 POA: Programacao funcional Por que Importa?TDC 2014 POA: Programacao funcional Por que Importa?
TDC 2014 POA: Programacao funcional Por que Importa?
 

Similar a Introdução à linguagem Prolog em

7-Prolog-Base (2).pdf
7-Prolog-Base (2).pdf7-Prolog-Base (2).pdf
7-Prolog-Base (2).pdfSofiaPiteira
 
Apresentação1 prolog trabalho phillipe
Apresentação1 prolog trabalho phillipeApresentação1 prolog trabalho phillipe
Apresentação1 prolog trabalho phillipePhillipe Eduardo
 
Introdução à Lógica de Predicados
Introdução à Lógica de PredicadosIntrodução à Lógica de Predicados
Introdução à Lógica de PredicadosHugo Souza
 
SlidesModulo03IIA.pdf
SlidesModulo03IIA.pdfSlidesModulo03IIA.pdf
SlidesModulo03IIA.pdfDeborah237501
 
Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Diogo L. V. G. Rubert
 

Similar a Introdução à linguagem Prolog em (7)

Aula3 sintaxe semantica
Aula3 sintaxe semanticaAula3 sintaxe semantica
Aula3 sintaxe semantica
 
7-Prolog-Base (2).pdf
7-Prolog-Base (2).pdf7-Prolog-Base (2).pdf
7-Prolog-Base (2).pdf
 
Apresentação1 prolog trabalho phillipe
Apresentação1 prolog trabalho phillipeApresentação1 prolog trabalho phillipe
Apresentação1 prolog trabalho phillipe
 
Introdução à Lógica de Predicados
Introdução à Lógica de PredicadosIntrodução à Lógica de Predicados
Introdução à Lógica de Predicados
 
28-aula28.pdf
28-aula28.pdf28-aula28.pdf
28-aula28.pdf
 
SlidesModulo03IIA.pdf
SlidesModulo03IIA.pdfSlidesModulo03IIA.pdf
SlidesModulo03IIA.pdf
 
Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015
 

Más de rafaelbozzetti

Más de rafaelbozzetti (6)

ULTRASMS - Principais Funcionalidades
ULTRASMS - Principais FuncionalidadesULTRASMS - Principais Funcionalidades
ULTRASMS - Principais Funcionalidades
 
Snep arquitetura
Snep arquiteturaSnep arquitetura
Snep arquitetura
 
Apresentação SNEP
Apresentação SNEPApresentação SNEP
Apresentação SNEP
 
Modulos SNEP
Modulos SNEPModulos SNEP
Modulos SNEP
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 

Introdução à linguagem Prolog em

  • 1. Linguagem Prolog Grupo: Cael London Vieira Mateus Felipe Rafael Pereira Bozzetti Walter da Silva Fernandes
  • 2. Prolog - Definição Geral  Prolog é uma linguagem Declarativa, ou seja, limita-se a descrever um problema.  Define uma coleção de Fatos e Relações sobre determinado objeto ou problema.  Utiliza-se de métodos lógicos para declarar como o programa deve atingir o seu objetivo.  Possibilita que consultas sejam feitas na base de conhecimento.
  • 3. Prolog - Histórico  Foi criada em 1971 por Alain Colmerauer e Robert Pasero na Universidade de Marselha, França.  Não foi idealizada como uma linguagem de programação, mas para o processamento de linguagens naturais, como o Português e o Inglês.
  • 4. Prolog - Domínio da Aplicação  Lógica matemática, prova de teoremas e semântica.  Compiladores  Soluções de equações simbólicas  Banco de dados relacionais  Linguagem Natural  Aplicações, como jogos de Xadrez e Damas  Planejamento automático de atividades  Análise Bioquímica e projetos de novas drogas
  • 5. Prolog - Características  Provador de teoremas (Verdade ou Falso)  Linguagem declarativa  Não emprega tipos de dados  Linguagem é interpretada  Diferente de programação estruturada.  Não existe variáveis globais
  • 6. Elementos da Linguagem  Fatos: Determina uma relação entre objetos existentes. Exemplo: gosta(maria,X).  Regras: Determina um relacionamento entre Fatos Exemplo: gosta(X,maria) :- gosta(X,peixe).  Consultas: Infere pesquisas na base de conhecimento à procura de cláusulas consultadas. Exemplo: ?- gosta(X,maria).
  • 7. Fatos gosta( joao,maria ). Relação Objeto  Relações e Objetos devem começar com letra minúscula.  Objetos são escritos dentro de parênteses.  Todo Fato deve terminar com ponto.  Uma Relação pode receber mais de um Objeto. Exemplo: gosta( joao, maria ).  A ordem dos objetos é importante. gosta( joao, maria ). é diferente de gosta( maria, joao ).
  • 8. Regras luz(acesa) :- interruptor(ligado).  Determina um relacionamento entre Fatos.  O “:-” significa “SE”, portanto na expressão acima, a luz está acesa se o interruptor estiver ligado.  Pode-se utilizar variáveis, devem ser em maiúsculo.  O conteúdo da variável após ser instanciada não pode ser mudado.
  • 9. , =E Consultas ; = OU gosta(X, esporte), gosta(X, futebol).  Ao fazer uma consulta a base de conhecimento, será realizado uma procura por relações entre os termos.  Referente a consulta, caso exista relação será retornado true, senão fail.  Pode-se utilizar variáveis nas consultas, neste caso todos os termos serão pesquisados.
  • 10. Operadores Relacionais X=Y X e Y são iguais; X = Y X e Y são diferentes; X<Y X é menor que Y; X>Y X é maior que Y; X =< Y X é menor ou igual a Y; X >= Y X é maior ou igual a Y. X =:= Y X e Y são iguais (p/ números); X == Y X e Y são diferentes (p/ números).
  • 11. Operadores Aritméticos X+Y Soma de X e Y; X–Y Diferença de X e Y; X*Y Multiplicação de X por Y; X/Y Divisão de X por Y; X mod Y Resto da divisão de X por Y.
  • 12. Ambiente de Desenvolvimento  Plugin Eclipse http://sewiki.iai.uni-bonn.de/research/pdt/start  Windows: SWI-Prolog-Editor http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swi prolog/indexe.html  Linux (debian/ubuntu): apt-get install swi-prolog
  • 13. Exemplo de Código fatorial(0,1). fatorial(N,F) :- N>0, N1 is N-1, factorial(N1,F1), F is N * F1.
  • 14. Exercício Proposto Na base de gosta( julio, peixe ). conhecimento ao lado, gosta( julio, maria ). como ficariam as gosta( maria, livro ). consultas? gosta( joao, livro ).  Quem gosta de livro? gosta( joao, peixe ).  Quem gosta de livro e gosta( maria, chocolate ). chocolate? gosta( maria, peixe ). gosta( joao, cerveja ).  Quem gosta de livro ou gosta( joao, futebol). chocolate?
  • 15. Resolução do Exercício  Quem gosta de livro? gosta(X,livro).  Quem gosta de livro e chocolate? gosta(X,livro),gosta(X,chocolate).  Quem gosta de livro ou chocolate? gosta(X,livro);gosta(X,chocolate).