A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

IV – Análise semântica Associação de regras semânticas a produções Bibliografia aconselhada: –Aho, Sethi e Ullman – capítulo 5.1 a 5.4 LFA 1999/2000 -

Apresentações semelhantes


Apresentação em tema: "IV – Análise semântica Associação de regras semânticas a produções Bibliografia aconselhada: –Aho, Sethi e Ullman – capítulo 5.1 a 5.4 LFA 1999/2000 -"— Transcrição da apresentação:

1 IV – Análise semântica Associação de regras semânticas a produções Bibliografia aconselhada: –Aho, Sethi e Ullman – capítulo 5.1 a 5.4 LFA 1999/ Jorge Morais

2 Tradução orientada pela sintaxe Existem duas formas de associar regras semânticas a produções –Definições orientadas pela sintaxe (gramática de atributos): especificações de alto nível para traduções –Esquemas de tradução: indicam a ordem de avaliação das regras semânticas LFA 1999/ Jorge Morais

3 Gramática de atributos Gramática independente de contexto onde cada símbolo gramatical (nó na árvore de derivação) tem associado um conjunto de atributos Estes atributos podem ser: –Sintetizados: valor obtido a partir dos filhos –Herdados: valor obtido a partir do pai ou outros descendentes deste Os atributos podem ser qualquer coisa: número, tipo, endereço de memória, etc... LFA 1999/ Jorge Morais

4 Exemplo – calculadora LFA 1999/ Jorge Morais PRODUÇÃOREGRA SEMÂNTICA L E \n Print(E.val) E E 1 + T E.val=E 1.val+T.val E T E.val=T.val T T 1 * F T.val=T 1.val*F.val T F T.val=F.val F ( E ) F.val=E.val F INT F.val=INT.val

5 Exemplo – declaração de variável LFA 1999/ Jorge Morais PRODUÇÃOREGRA SEMÂNTICA D T L L.herd = T.tipo T int T.tipo=inteiro T real T.tipo=real L L 1, ID L 1.herd=L.herd ad_tipo(ID.entr,L.herd) L ID ad_tipo(ID.entr,L.herd)

6 Esquemas de tradução Gramática independente de contexto onde existem atributos associados aos símbolos gramaticais e as acções semânticas são colocadas entre chavetas O valor do atributo tem que estar disponível quando for usado LFA 1999/ Jorge Morais

7 Exemplo – calculadora L E \n{ Print(E.val) } E E 1 + T{ E.val = E 1.val+T.val } E T{ E.val = T.val } T T 1 * F{ T.val = T 1.val*F.val } T F{ T.val = F.val } F ( E ){ F.val = E.val } F INT{ F.val = INT.val } LFA 1999/ Jorge Morais

8 Exemplo – declaração de variável D T {L.herd = T.tipo} L T int {T.tipo = inteiro} T real {T.tipo = real} L {L 1.herd = L.herd} L 1, ID { ad_tipo(ID.entr,L.herd) } L ID { ad_tipo(ID.entr,L.herd) } LFA 1999/ Jorge Morais

9 Exemplo – notação posfixa E T E E + T { Print(+) } E | T F T T * F { Print(*) } T | F INT { Print(INT.val) } | ( E ) LFA 1999/ Jorge Morais


Carregar ppt "IV – Análise semântica Associação de regras semânticas a produções Bibliografia aconselhada: –Aho, Sethi e Ullman – capítulo 5.1 a 5.4 LFA 1999/2000 -"

Apresentações semelhantes


Anúncios Google