11.07.2015 Views

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ProduçãoL → EE → E + TE → TT → T ∗ FT → FF → (E)F → inteiroRegras Semânticasimprimir(E.val)E.val = E’.val+T.valE.val = T.valT.val = T’.val*F.valT.val = F.valF.val = E.valF.val = inteiro.lexemaLEImprimir(19)E.val = 15+4 = 19E.val = 15E+TT.val = 4T.val = 3*5 = 15TFF.val = 4T.val = 3T*FF.val = 54Inteiro.Lexval = 4F.val = 3F5Inteiro.Lexval = 53Inteiro.Lexval = 3Figura 5.1: Exemplo de Árvore Decorada para a Expressão 3*5+4Atributos herdados são convenientes para expressar a dependência de uma construçãode linguagem de programação no contexto em que a mesma figurar. Por exemplo, podemosusar um atributo herdado para controlar se um identificador aparece ao lado esquerdo oudireito de um comando de atribuição a fim de decidirmos se é necessário usar o endereçoou o valor do mesmo.Exemplo: Declaração de variáveis: int x,y,zProduçãoD → T LT → intT → floatL → L ′ , idL → idRegras SemânticasL.in = T.tipoT.tipo = inteiroT.tipo = realL’.in = L.inincluir tipo(id, L.in)incluir tipo(id, L.in)Grafos de DependênciaSe um atributo b a um nó da árvore depender de um atributo c, a regra semântica para bàquele nó precisa ser avaliada após a regra semântica para c. As interdependências entreos atributos herdados e sintentizados são delineadas através de um grafo de dependência.42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!