Escolar Documentos
Profissional Documentos
Cultura Documentos
Feltrim
DIN UEM
Definio S-atribuda
Usa exclusivamente atributos sintetizados
Ideal para ser implementada em conjunto com um analisador
sinttico LR
Conforme visto nas aulas anteriores
Definio L-atribuda
Mais abrangente
Admite atributos sintetizados e herdados
Mais fcil de ser implementada em conjunto com um analisador
sinttico LL(1)
Definio L-atribuda
Os atributos podem ser avaliados numa visita em
profundidade, da esquerda para a direita
Similar S-atribuda
Por qu?
DDS NO L-atribuda DDS L-atribuda
D T { L.tipo:=T.tipo } L
T int { T.tipo:=inteiro }
T real { T.tipo:=real }
L { L1.tipo:=L.tipo} L1, id { addTS(id.lexval, L1.tipo) }
L id { addTS(id.lexval, L.tipo) }
Restries para esquemas de traduo L-atribudos
Um atributo herdado para um smbolo no lado direito de uma
produo precisa ser computado numa ao antes daquele
smbolo
Uma ao no pode ser referir a um atributo sintetizado de um
smbolo direita da ao
Um atributo sintetizado para o no-terminal do lado esquerdo da
produo somente ser computado aps os cmputo de todos os
atributos que o mesmo referencie
Usualmente colocada ao fim do lado direito da produo
Um avaliador Top-down pode ser construdo alterando-se o
algoritmo de um analisador LL(1)
Pilha semntica: armazena valores de atributos
Pilha sinttica: armazena produes e aes semnticas
Quando uma produo empilhada na pilha sinttica, as aes
semnticas tambm so empilhadas
Uma ao semntica ser desempilhada e executada sempre
que estiver no topo da pilha
O esquema de traduo abaixo ter o atributo S.ok=true
quando o nmero de as for a soma do nmero de bs e cs