Este documento fornece um resumo da sintaxe e semântica da linguagem Prolog. Apresenta os principais elementos da linguagem como átomos, números, variáveis, estruturas e unificação. Explica como a sintaxe especifica os tipos de objetos e como a semântica define o significado desses objetos e suas relações por meio do processo de unificação.
Através do ensino a distancia você poderá fazer o curso online de Disciplinas para Concursos: Língua Portuguesa - Morfossintaxe, que abrira novos horizontes profissionais para quem deseja aprofundar seus conhecimentos. Neste curso online você pode estudar em casa por um material de qualidade e obter uma melhor colocação profissional em pouco tempo.
Através do ensino a distancia você poderá fazer o curso online de Disciplinas para Concursos: Língua Portuguesa - Morfossintaxe, que abrira novos horizontes profissionais para quem deseja aprofundar seus conhecimentos. Neste curso online você pode estudar em casa por um material de qualidade e obter uma melhor colocação profissional em pouco tempo.
LIVRO MPARADIDATICO SOBRE BULLYING PARA TRABALHAR COM ALUNOS EM SALA DE AULA OU LEITURA EXTRA CLASSE, COM FOCO NUM PROBLEMA CRUCIAL E QUE ESTÁ TÃO PRESENTE NAS ESCOLAS BRASILEIRAS. OS ALUNOS PODEM LER EM SALA DE AULA. MATERIAL EXCELENTE PARA SER ADOTADO NAS ESCOLAS
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfenpfilosofiaufu
Caderno de Resumos XVIII Encontro de Pesquisa em Filosofia da UFU, IX Encontro de Pós-Graduação em Filosofia da UFU e VII Encontro de Pesquisa em Filosofia no Ensino Médio
livro em pdf para professores da educação de jovens e adultos dos anos iniciais ( alfabetização e 1º ano)- material excelente para quem trabalha com turmas de eja. Material para quem dar aula na educação de jovens e adultos . excelente material para professores
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Biblioteca UCS
A biblioteca abriga, em seu acervo de coleções especiais o terceiro volume da obra editada em Lisboa, em 1843. Sua exibe
detalhes dourados e vermelhos. A obra narra um romance de cavalaria, relatando a
vida e façanhas do cavaleiro Clarimundo,
que se torna Rei da Hungria e Imperador
de Constantinopla.
1. Sintaxe e Semântica Prolog
Elaine Faria e Hiran Nonato
Programação Lógica
UFU - 2012
2. Créditos
• O material a seguir consiste de
adaptações e extensões dos originais
gentilmente cedidos pelo Prof. Alexsandro
Santos Soares
• Agradecimento especial ao Prof. Gabriel
Coutinho que auxiliou na confecção do
material
4. Sintaxe e semântica
• O tipo de um objeto é reconhecido por
meio de sua forma sintática.
• Isso é possível porque a sintaxe do Prolog
especifica formas diferentes para cada
tipo de objeto.
6. Sintaxe e Semântica
• Átomos podem ser formados por:
1. Cadeia de letras ou dígitos, iniciando
obrigatoriamente com letra minúscula.
(podendo conter o símbolo _)
Ex: socrates, joao, x_1
2. Cadeia de caracteres especiais.
Ex: <----> ::=
3. Cadeia de caracteres quaisquer, inclusive
espaço em branco, desde que usando o
símbolo ‘.
Ex: ‘Prog. Lógico’
8. Sintaxe e Semântica
• Variáveis:
– São cadeias de letras, dígitos ou caractere
sublinhado (_), devendo iniciar com este ou
com uma letra maiúscula
– O caractere "_", sozinho, representa uma
variável anônima, isto é, sem interesse para
um determinado procedimento
– Exemplos de variáveis: X, Resultado, _var, _
9. Sintaxe e Semântica
Variáveis (cont.)
• O escopo léxico de nomes de variáveis é
apenas uma cláusula
• Ex: se o nome X25 ocorre em duas cláusulas
diferentes, então ele está representando duas
variáveis diferentes; toda ocorrência de X25 dentro
da mesma cláusula quer significar a mesma
variável
10. Sintaxe e Semântica
• Variáveis (cont.)
– Uma variável pode estar
• Instanciada: quando á variável já referencia algum objeto
• não-instanciada: quando a variável não referencia nenhum
objeto, ou seja, quando o objeto a que ela referencia ainda
não é conhecido
– Quando uma variável é usada numa pergunta, o
Prolog procura todos os fatos tentando encontrar um
objeto no qual a variável possa ser instanciada
• Quando uma solução é encontrada, ela é mostrada. Se o
usuário estiver satisfeito com a resposta, basta digitar return
• Se desejar mais respostas, usa-se ponto-evírgula “;”
11. Sintaxe e Semântica
• Variáveis (cont.)
Base de fatos: Qual o resultado das seguintes
perguntas?
gosta(joao, peixe). ?- gosta(maria,X).
gosta(joao,maria). ?- gosta(X,livro).
gosta(maria,livro). ?- gosta(Quem,Oque).
gosta(pedro,livro). ?- gosta(X,Y).
gosta(maria,flor). ?- gosta(X,X).
gosta(maria,vinho). ?- gosta(_a,_b).
?- gosta(A,peixe).
12. Sintaxe e Semântica
• Estruturas
– São objetos que possuem vários componentes
– Os próprios componentes podem ser também
estruturas
– Ex: Data estrutura com 3 componentes
Luis, A. M. Palazzo, Introdução à Programação Prolog, Educat, 1997.
13. Sintaxe e Semântica
• Estruturas
– Ex: data(Dia, março, 1996)
• A variável Dia pode ser instanciada para qualquer
objeto
– Todos os objetos em Prolog são denominados
termos.
• Toda constante é um termo
• Toda variável é um termo
• Se t1, t2, ..., tn são termos e f é um átomo, então
f(t1, t2, ..., tn) também é um termo
14. Sintaxe e Semântica
• Estruturas
– Todos os objetos estruturados podem ser
representados como árvores
• A raiz da árvore é o functor
• os ramos que dela partem são os argumentos ou
componentes
• Ex: (a + b) * (c - 5)
*(+(a, b), -(c, 5))
15. Sintaxe e Semântica
• Unificação
– É o processo que, dados dois termos como
dados de entrada verifica-se eles se “casam”
– Dados dois termos, diz-se que eles unificam
se
• Eles são idênticos ou
• As variáveis de ambos os termos podem ser
instanciadas com objetos de maneira que, após a
substituição das variáveis por esses objetos, os
termos se tornam idênticos
16. • Unificação
Isto significa que:
• maria e maria se unificam
• 42 e 42 se unificam
• mulher(maria) e mulher(maria) se unificam
Isto também significa que:
• vicente e maria não se unificam
• mulher(maria) e mulher(joana) não se unificam
Sintaxe e Semântica
17. • Unificação
• Os termos abaixo se unificam?
• maria e X
Sintaxe e Semântica
18. • Unificação
• Os termos abaixo se unificam?
• maria e X
• mulher(Z) e mulher(maria)
Sintaxe e Semântica
19. • Unificação
• Os termos abaixo se unificam?
• maria e X
• mulher(Z) e mulher(maria)
• ama(maria,X) e ama(X,vicente)
Sintaxe e Semântica
21. Como Prolog responderá?
?- X=maria, X=vicente.
false
?-
Por quê? Após trabalhar na primeira
meta, Prolog instanciou a variável X
com maria, e assim ele não pode mais
unificá-la com vicente. Logo, a
segunda meta falha.
22. • Unificação (cont.)
– Se os termos não unificam, dizemos que o
processo falha.
– Se eles unificam, então o processo é bem-
sucedido
– Exemplo
data(D, M, 1994) e data(X, março, A) unificam
data(D, M, 1994) e data(X, Y, 94) não unificam
Sintaxe e Semântica
23. Sintaxe e Semântica
• Unificação (cont.)
– Regras que determinam se dois termos S e T unificam
• Se S e T são constantes, então S e T unificam somente se
ambos representam o mesmo objeto
• Se S é uma variável e T é qualquer coisa, então S e T unificam
com S instanciada com T. Inversamente, se T é uma variável,
então T é instanciada com S;
• Se S e T são estruturas, unificam somente se: (1) S e T tem o
mesmo functor principal, e (2) todos os seus componentes
correspondentes também unificam. A instanciação resultante é
determinada pela unificação dos componentes
Exemplo:
triângulo(ponto(1, 1), A, ponto(2, 3)) e triângulo(X, ponto(4, Y), ponto(2, Z))?
24. Sintaxe e Semântica
• Seja a base de dados:
grande(urso). % Cláusula 1
grande(elefante). % Cláusula 2
pequeno(gato). % Cláusula 3
marrom(urso). % Cláusula 4
preto(gato) % Cláusula 5
cinza(elefante). % Cláusula 6
escuro(Z) :- % Cláusula 7
preto(Z).
escuro(Z) :- % Cláusula 8
marrom(Z).
• Qual o resultado da consulta:
– ?- escuro(X), grande(X).
X = urso.
25. Exemplo com termos complexos:
?- k(s(g),Y) = k(X,t(k)).
Sintaxe e Semântica
26. Exemplo com termos complexos:
?- k(s(g),Y) = k(X,t(k)).
X=s(g)
Y=t(k)
true
?-
Sintaxe e Semântica
27. Exemplo com termos complexos:
?- k(s(g),t(k)) = k(X,t(Y)).
Sintaxe e Semântica
28. Exemplo com termos complexos:
?- k(s(g),t(k)) = k(X,t(Y)).
X=s(g)
Y=k
true
?-
Sintaxe e Semântica
29. Busca pela prova
• Agora que conhecemos a unificação,
começaremos a aprender como Prolog
busca em base de conhecimento para
ver se uma consulta é satisfeita.
• Em outras palavras: nós começaremos a
aprender sobre a busca pela prova
30. Exemplo: árvore de busca
f(a).
f(b).
g(a).
g(b).
h(b).
k(X):- f(X), g(X), h(X).
?- k(Y).
Base de dados
Consulta