3. Sintaxe e Sem - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

3. Sintaxe e Sem

Description:

... iniciando obrigatoriamente com letra min scula. socrates x_y nil mostraMenu x47 a_b_1_2 b. Cadeias de caracteres especiais. – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 16
Provided by: Luiz113
Category:
Tags: sem | sintaxe

less

Transcript and Presenter's Notes

Title: 3. Sintaxe e Sem


1
3. Sintaxe e Semântica
2
Objetos Prolog
3
Alfabeto
  • Pontuação ( ) . ' "
  • Conetivos , (conjunção)
  • (disjunção)
  • - (implicação)
  • Letras a, b, c, ..., z, A, B, C ... Z
  • Dígitos 0, 1, 2, ..., 9
  • Especiais - / lt gt _
    ... etc.
  • SWI-Prolog UNICODE ç, à, ã, ê, é, ó, ü ...
    etc.

4
Átomos
  • a. Cadeias de letras e/ou dígitos, podendo
    conter o caracter especial sublinhado (_),
    iniciando obrigatoriamente com letra minúscula.
  • socrates x_y
  • nil mostraMenu
  • x47 a_b_1_2
  • b. Cadeias de caracteres especiais.
  • lt--------gt
  • /
  • c. Cadeias de caracteres quaisquer, inclusive
    espaços em branco, desde que delimitados por
    apóstrofos (').
  • 'D. Pedro I'
  • 'representação de conhecimento'
  • 23 de abril de 2007

5
Números
  • a. Inteiros
  • 1 1812 0 -273
  • b. Reais (Ponto Flutuante)
  • 3.14159 0.000023 -273.16
  • Notação Exponencial
  • 2.180765e-34

6
Variáveis
  • Variáveis Prolog são cadeias de letras, dígitos e
    do caracter sublinhado (_), devendo iniciar com
    este ou com uma letra maiúscula.
  • O caracter "_", sozinho, representa uma variável
    anônima, isto é, sem interesse para um
    determinado procedimento.
  • Exemplos de variáveis são
  • X, Y, Z, ...
  • Resultado
  • Objeto2
  • Lista_de_Associados
  • _var35
  • _194
  • _ (variável anônima)

7
Objetos Estruturados
  • data(13, outubro, 1993)

data
data
(13, outubro, 1993)
13
out.
1993
functor
argumentos
8
Termos
  • Sintaticamente, todos os objetos em Prolog são
    denominados termos.
  • O conjunto de termos Prolog é o menor conjunto
    que satisfaz às seguintes condições
  • 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, onde
    o átomo f desempenha o papel de um símbolo
    funcional n-ário.

9
Unificação
  • 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.
  • Por exemplo, os termos
  • data(D, M, 2007) e
  • data(X, março, A) unificam.
  • Uma instanciação que torna os dois termos
    idênticos é
  • D é instanciada com X
  • M é instanciada com março
  • A é instanciada com 2007.

10
O Operador de Unificação
  • O operador de unificação é representado por
    (/2).
  • Este operador não tem a mesma semântica da
    igualdade aritmética e atua tentando unificar os
    termos existentes à sua direita e esquerda.
  • Por exemplo, a operação ponto(X,2) ponto(3,Y)
    resulta bem sucedida com X instanciada com 3 e Y
    com 2.
  • Já as operações ponto(X,2) ponto(Y,3) e k1(Z)
    k2(a) não são bem sucedidas, não ocorrendo
    instanciação. Por quê?

11
Regra Geral
  • Dados dois termos, S e T e a operação S T
  • 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
  • S e T tem o mesmo functor principal, e
  • todos os seus componentes correspondentes também
    unificam. A instanciação resultante é
    determinada pela unificação dos componentes.

12
Interpretações Semânticas
  • Declarativa Não depende da ordem das cláusulas
    nem da ordem dos objetivos dentro das cláusulas.
  • Procedimental Depende da ordem dos objetivos e
    cláusulas. Aqui a ordem pode afetar a eficiência
    de um programa.
  • Operacional Representa um procedimento para
    satisfazer a lista de objetivos no contexto de um
    dado programa. A saída desse procedimento é o
    valor-verdade da lista de objetivos com a
    respectiva instanciação de sua variáveis.

13
Execução do Prolog
programa
objetivos
executor
sucesso/falha
instanciações
14
Exercícios
Quais dos seguintes objetos estão sintaticamente
corretos e a que tipo de objeto
pertencem? a. Daniela b. daniela c. 'Daniela'
d. _daniela e. 'Daniela vai a
Paris' f. vai(daniela, paris) g. 8118 h. 2(X,
Y) i. (sul, oeste) j. (X,
2) k. três(Cavalos(Baios))
15
Exercícios
Quais das seguintes operações de unificação serão
bem sucedidas e quais irão falhar? Para as que
forem bem sucedidas, quais são as instanciações
de variáveis resultantes? a. ponto(A, B)
ponto(1, 2) b. ponto(A, B) ponto(X, Y,
Z) c. mais(2, 2) 4 d. (2, D) (E,
2) e. t(p(-1,0), P2, P3) t(P1, p(1, 0), p(0,
Y))
Write a Comment
User Comments (0)
About PowerShow.com