Comment puis-je trouver si un attribut est synthétisé ou hérité des productions d'une grammaire?
J'imagine que pour cela l'attribut doit être prédéfini dans le problème - si sa valeur dépend de nœuds enfants ou parents. Mais existe-t-il un moyen d'analyser si un attribut est hérité ou synthétisé à partir de productions grammaticales?.
Attribut synthétisé: attribut qui tire ses valeurs des attributs attachés aux enfants de son non-terminal.
Attribut hérité: attribut qui tire ses valeurs des attributs attachés au parent (ou aux frères et sœurs) de son non-terminal.
**PRODUCTION** **SEMANTIC RULES**
T->FT’ T’.inh=F.val
T.val=T’.syn
T’->*FT1’ T1’.inh=T’.inh*F.val
T’.syn=T1’.syn
T’->Ɛ T’.syn=T’.inh
F->id F.val=id.lexval
Comme vous pouvez le constater à partir de la grammaire donnée (productions),inh est un attribut hérité et Syn est un attribut synthétisé.
Furtter Read: Attributs Grammars .
L'attribut qui prend des valeurs de données de ses nœuds enfants est appelé un attribut synthétisé.
Celles-ci sont également appelées production s-attribuée. L'attribut qui prend des valeurs de parents ou de nœuds frères est appelé attributs hérités. Les règles de production ayant un attribut hérité (chaque attribut hérité est limité à l'héritage d'un parent ou d'un frère laissé uniquement) sont appelées productions L-attribuées.
Regardons la calculatrice