SlideShare a Scribd company logo
1 of 14
Download to read offline
Paradigma
lógico
Prof: Sergio Souza Costa
PARADIGMA LÓGICO
FATOS, REGRAS E PERGUNTAS
●Um fato é uma afirmação sempre verdadeira.
●Uma regra é uma afirmação que para ser verdadeira depende
de outras regras ou fatos.
●Podemos fazer perguntas sobre os fatos ou regras.
A Terra é um planeta.
O Sol é uma estrela.
A Terra é um planeta ?
Quem é um planeta ?
A Terra é uma estrela ?
A Terra é um planeta se ela não
for uma estrela.
PARADIGMA LÓGICO
●Programa-se de forma declarativa, ou seja,
especificando o que deve ser computado ao invés de
como deve ser computado
●Sem instruções explícitas e seqüenciamento
●Aplicações em IA, robotica, linguagem natural
PARADIGMA LÓGICO
Programar em lógica envolve:
1. declarar alguns fatos a respeito de objetos e seus
relacionamentos,
2. definir algumas regras sobre os objetos e seus relacionamentos
e
3. fazer perguntas sobre os objetos e seus relacionamentos.
LÓGICA E PROLOG
●Prolog = Programming in Logic.
●Principal linguagem do paradigma lógico , proposto na
década de 70.
○ Robert Kowalski (Edinburgh)
○ Maarten van Emden (Edinburgh)
○ Alan Colmerauer (Marseilles)
FATOS EM PROLOG
Fatos
Notação geral de fatos.
predicado(arg1, arg3, ..., argn ).
O Sol é uma estrela.
A Terra é um planeta.
estrela(sol).
planeta(terra).
Um fato ou regra deve
terminar por pontoPredicados e
argumentos são
escritos por letras
Não pode ter
espaço entre
predicado e
parênteses.
FATOS EM PROLOG
●Exemplos de fatos, com um argumento
●Exemplos de fatos, com mais de um argumento
estrela(sol).
planeta(terra).
planeta(marte).
satelite(lua).
pai(joao, ana).
João é pai de
Ana.
filho(jose, maria, antonio). José é filho de Maria e
Antonio
Verbo Sujeito e Objeto
PERGUNTAS EM PROLOG
Consultas, perguntas, queries ou goals.
A “hipótese do mundo fechado”.
A Terra é um planeta ?
A Terra é uma estrela ?
O sol é um planeta ? ...
?- planeta(terra).
true.
?- estrela(terra).
false.
% base de dados
planeta(terra).
% goals
?- planeta(marte).
false.
PERGUNTAS EM PROLOG
Consultas, perguntas, queries ou goals.
A “hipótese do mundo fechado”.
A Terra é um planeta ?
A Terra é uma estrela ?
O sol é um planeta ? ...
?- planeta(terra).
true.
?- estrela(terra).
false.
% base de dados
planeta(terra).
% goals
?- planeta(marte).
false.
Um predicado
sempre retorna
um valor lógico,
verdadeiro ou
falso.
PERGUNTAS EM PROLOG
Consultas, perguntas, queries ou goals.
A “hipótese do mundo fechado”.
A Terra é um planeta ?
A Terra é uma estrela ?
O sol é um planeta ? ...
?- planeta(terra).
true.
?- estrela(terra).
false.
% base de dados
planeta(terra).
% goals
?- planeta(marte).
false.
Um predicado
sempre retorna
um valor lógico,
verdadeiro ou
falso.
se um fato não é
conhecido ,
assume-se que
ele é falso.
PERGUNTAS EM PROLOG
Consultas, perguntas, queries ou goals.
A Terra é um planeta ?
A Terra é uma estrela ?
O sol é um planeta ? ...
?- planeta(terra).
true.
?- estrela(terra).
false.
Quem é um
planeta ?
VARIÁVEIS EM PROLOG
Variáveis em Prolog é como uma incógnita que pode
ser encontrada por inferência (deduções lógicas) aos
fatos e regras:
?- planeta(X).
X = terra.
Variável
XDedução do
interpretador
Toda variável
começa com
letra maiúscula
REGRAS OU CLAUSULAS
A Terra é um planeta se
ela não for uma estrela.
planeta(terra) :-
not(estrela(terra)).
irmao(X,Y) :- filho(X, H,M) , filho(Y,H,M) , Y == X.
Cabeça,
definição do
predicado
Pescoço,
equivale ao “if“
ou “se”.
Corpo,
equivale a
uma função.
Uma virgula (,) equivale ao
operador “e” e um ponto e
virgula (;) ao operador “ou”.
Pé da
sentença (.)

More Related Content

What's hot

Lógica e Matemática Computacional - Aula 01
Lógica e Matemática Computacional - Aula 01Lógica e Matemática Computacional - Aula 01
Lógica e Matemática Computacional - Aula 01thomasdacosta
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Lógica e Matemática Computacional - Aula 02
Lógica e Matemática Computacional - Aula 02Lógica e Matemática Computacional - Aula 02
Lógica e Matemática Computacional - Aula 02thomasdacosta
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regularwab030
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosMessias Batista
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Expressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasExpressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasSérgio Souza Costa
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08André Phillip Bertoletti
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02thomasdacosta
 

What's hot (20)

Lógica e Matemática Computacional - Aula 01
Lógica e Matemática Computacional - Aula 01Lógica e Matemática Computacional - Aula 01
Lógica e Matemática Computacional - Aula 01
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Lógica e Matemática Computacional - Aula 02
Lógica e Matemática Computacional - Aula 02Lógica e Matemática Computacional - Aula 02
Lógica e Matemática Computacional - Aula 02
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Linguagens Formais
Linguagens FormaisLinguagens Formais
Linguagens Formais
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regular
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e Lógicos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Expressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasExpressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicas
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02
 

More from Sérgio Souza Costa

De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computadorSérgio Souza Costa
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosSérgio Souza Costa
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosSérgio Souza Costa
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoSérgio Souza Costa
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemSérgio Souza Costa
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaSérgio Souza Costa
 
Linguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoLinguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoSérgio Souza Costa
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theoremsSérgio Souza Costa
 
DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsSérgio Souza Costa
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosSérgio Souza Costa
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Sérgio Souza Costa
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)Sérgio Souza Costa
 
Explorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalExplorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalSérgio Souza Costa
 

More from Sérgio Souza Costa (20)

De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computador
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmos
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficos
 
Modelagem de dados geográficos
Modelagem de dados geográficosModelagem de dados geográficos
Modelagem de dados geográficos
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de Encerramento
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de abertura
 
Linguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoLinguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - Introdução
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theorems
 
Turing e o problema da decisão
Turing e o problema da decisãoTuring e o problema da decisão
Turing e o problema da decisão
 
DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cells
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetos
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)
 
Herança e Encapsulamento
Herança e EncapsulamentoHerança e Encapsulamento
Herança e Encapsulamento
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)
 
Abstract classes and interfaces
Abstract classes and interfacesAbstract classes and interfaces
Abstract classes and interfaces
 
Heap - Python
Heap - PythonHeap - Python
Heap - Python
 
Contextualizando o moodle
Contextualizando o moodleContextualizando o moodle
Contextualizando o moodle
 
Explorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalExplorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento Computacional
 
Software
SoftwareSoftware
Software
 

Paradigma lógico: fatos, regras e perguntas em Prolog

  • 3. FATOS, REGRAS E PERGUNTAS ●Um fato é uma afirmação sempre verdadeira. ●Uma regra é uma afirmação que para ser verdadeira depende de outras regras ou fatos. ●Podemos fazer perguntas sobre os fatos ou regras. A Terra é um planeta. O Sol é uma estrela. A Terra é um planeta ? Quem é um planeta ? A Terra é uma estrela ? A Terra é um planeta se ela não for uma estrela.
  • 4. PARADIGMA LÓGICO ●Programa-se de forma declarativa, ou seja, especificando o que deve ser computado ao invés de como deve ser computado ●Sem instruções explícitas e seqüenciamento ●Aplicações em IA, robotica, linguagem natural
  • 5. PARADIGMA LÓGICO Programar em lógica envolve: 1. declarar alguns fatos a respeito de objetos e seus relacionamentos, 2. definir algumas regras sobre os objetos e seus relacionamentos e 3. fazer perguntas sobre os objetos e seus relacionamentos.
  • 6. LÓGICA E PROLOG ●Prolog = Programming in Logic. ●Principal linguagem do paradigma lógico , proposto na década de 70. ○ Robert Kowalski (Edinburgh) ○ Maarten van Emden (Edinburgh) ○ Alan Colmerauer (Marseilles)
  • 7. FATOS EM PROLOG Fatos Notação geral de fatos. predicado(arg1, arg3, ..., argn ). O Sol é uma estrela. A Terra é um planeta. estrela(sol). planeta(terra). Um fato ou regra deve terminar por pontoPredicados e argumentos são escritos por letras Não pode ter espaço entre predicado e parênteses.
  • 8. FATOS EM PROLOG ●Exemplos de fatos, com um argumento ●Exemplos de fatos, com mais de um argumento estrela(sol). planeta(terra). planeta(marte). satelite(lua). pai(joao, ana). João é pai de Ana. filho(jose, maria, antonio). José é filho de Maria e Antonio Verbo Sujeito e Objeto
  • 9. PERGUNTAS EM PROLOG Consultas, perguntas, queries ou goals. A “hipótese do mundo fechado”. A Terra é um planeta ? A Terra é uma estrela ? O sol é um planeta ? ... ?- planeta(terra). true. ?- estrela(terra). false. % base de dados planeta(terra). % goals ?- planeta(marte). false.
  • 10. PERGUNTAS EM PROLOG Consultas, perguntas, queries ou goals. A “hipótese do mundo fechado”. A Terra é um planeta ? A Terra é uma estrela ? O sol é um planeta ? ... ?- planeta(terra). true. ?- estrela(terra). false. % base de dados planeta(terra). % goals ?- planeta(marte). false. Um predicado sempre retorna um valor lógico, verdadeiro ou falso.
  • 11. PERGUNTAS EM PROLOG Consultas, perguntas, queries ou goals. A “hipótese do mundo fechado”. A Terra é um planeta ? A Terra é uma estrela ? O sol é um planeta ? ... ?- planeta(terra). true. ?- estrela(terra). false. % base de dados planeta(terra). % goals ?- planeta(marte). false. Um predicado sempre retorna um valor lógico, verdadeiro ou falso. se um fato não é conhecido , assume-se que ele é falso.
  • 12. PERGUNTAS EM PROLOG Consultas, perguntas, queries ou goals. A Terra é um planeta ? A Terra é uma estrela ? O sol é um planeta ? ... ?- planeta(terra). true. ?- estrela(terra). false. Quem é um planeta ?
  • 13. VARIÁVEIS EM PROLOG Variáveis em Prolog é como uma incógnita que pode ser encontrada por inferência (deduções lógicas) aos fatos e regras: ?- planeta(X). X = terra. Variável XDedução do interpretador Toda variável começa com letra maiúscula
  • 14. REGRAS OU CLAUSULAS A Terra é um planeta se ela não for uma estrela. planeta(terra) :- not(estrela(terra)). irmao(X,Y) :- filho(X, H,M) , filho(Y,H,M) , Y == X. Cabeça, definição do predicado Pescoço, equivale ao “if“ ou “se”. Corpo, equivale a uma função. Uma virgula (,) equivale ao operador “e” e um ponto e virgula (;) ao operador “ou”. Pé da sentença (.)