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

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

IV – Análise semântica DEI Associação de regras semânticas a produções

Apresentações semelhantes


Apresentação em tema: "IV – Análise semântica DEI Associação de regras semânticas a produções"— Transcrição da apresentação:

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

2 Tradução orientada pela sintaxe
DEI 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 Jorge Morais LFA 1999/

3 Gramática de atributos
DEI 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... Jorge Morais LFA 1999/

4 Exemplo – calculadora DEI PRODUÇÃO REGRA SEMÂNTICA L  E ‘\n’
Print(E.val) E  E1 + T E.val=E1.val+T.val E  T E.val=T.val T  T1 * F T.val=T1.val*F.val T  F T.val=F.val F  ( E ) F.val=E.val F  INT F.val=INT.val Jorge Morais LFA 1999/

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

6 Esquemas de tradução DEI
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 Jorge Morais LFA 1999/

7 Exemplo – calculadora DEI L  E ‘\n’ { Print(E.val) }
E  E1 + T { E.val = E1.val+T.val } E  T { E.val = T.val } T  T1 * F { T.val = T1.val*F.val } T  F { T.val = F.val } F  ( E ) { F.val = E.val } F  INT { F.val = INT.val } Jorge Morais LFA 1999/

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

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


Carregar ppt "IV – Análise semântica DEI Associação de regras semânticas a produções"

Apresentações semelhantes


Anúncios Google