9

Wie kann ich herausfinden, ob ein Attribut von den Produktionen einer Grammatik synthetisiert oder geerbt wird?Synthetisierte vs vererbte Attribute

Ich denke, dass das Attribut im Problem vordefiniert sein muss - wenn sein Wert von Kind oder Elternknoten abhängt. Aber gibt es eine Möglichkeit zu analysieren, ob ein Attribut von Grammatik-Produktionen geerbt oder synthetisiert wird.

+0

, d. H. Ein Attribut t muss vordefiniert sein, um S oder I zu sein. Könnte ich aus den semantischen Regeln, die mit Produktionen verbunden sind, unterscheiden oder nicht. Bitte geben Sie ein Beispiel. – user2047167

Antwort

7

Synthetisiertes Attribut: Ein Attribut, das seine Werte aus den Attributen erhält, die an die untergeordneten Elemente seines Nicht-Terminals angehängt sind.

Inherited Attribut: Ein Attribut, das seine Werte aus den Attributen erhält, die dem übergeordneten Element (oder den Geschwistern) seines Nicht-Terminals zugeordnet sind.

  **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 

Wie Sie aus der gegebenen Grammatik (Produktionen) sehen können, Einw ist eine erbliche Eigenschaft und syn ist ein synthetisiertes Attribut.

+1

T.val = T'.syn, indem nur diese Regel angezeigt wird, ist val syn. Attribut .... – user2047167

+1

@ user2047167-Ja, val ist eine syn. Attribut, da T.val Werte von seinem Kind nodeT.syn nimmt; Du hast absolut recht! –

+1

Was ist, wenn es ein Attribut gibt, das in einer Regel das Attribut des Elterns für seine Auswertung verwendet und in einer anderen Regel seinen Kinderwert für die Auswertung verwendet – user2047167

1

Das Attribut, das Datenwerte von seinen Kindknoten übernimmt, heißt synthetisches Attribut.

Diese werden auch s-attributierte Produktion genannt. Das Attribut, das Werte von Eltern- oder Geschwisterknoten annimmt, werden geerbte Attribute genannt. Die Produktionsregel, die das Attribut geerbt hat, wird L-attributierte Produktionen genannt.