Zurück zur Übersicht

Begriff

Attribute Grammar

Computer Science Compiler S4
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Eine normale Grammatik (BNF) definiert nur die Syntax. E -> E + T. (Ein Ausdruck ist Summe plus Term). Aber was bedeutet das? Was ist der Wert? Donald Knuth erfand Attribute Grammars. Man klebt an jeden Knoten im Baum Attribute (Werte). E.val = E1.val + T.val. T.type = int. Man definiert Regeln, wie diese Werte fließen. Von unten nach oben (synthesized: Ergebnis berechnen). Von oben nach unten (inherited: Kontext weitergeben, z. B. "Variable x ist definiert").

Merksatz: Eine formale Methode zur Definition der Semantik einer kontextfreien Grammatik, indem Grammatiksymbolen Eigenschaften (Attribute) und Auswertungsregeln zugeordnet werden.


Quick-Check

  1. Wieso Knuth?
    Er hat es 1968 erfunden, um Semantik formal zu definieren. Er wollte eigentlich nur wissen, ob man Programmiersprachen mathematisch exakt machen kann.
  2. Unterschied zu AST?
    Der AST (Abstract Syntax Tree) ist die Datenstruktur. Attribute Grammar ist die Rechenvorschrift auf diesem Baum.
  3. Immer noch relevant?
    Ja, in jedem Compiler-Buch. Und in modernen Low-Code Tools (Modell-Transformationen).