Attributgrammatik
En attributgrammatik er en formel måde til at udvide en formel grammatik med semantisk databehandling.

I en attributgrammatik gemmes semantisk information i attributter associeret med grammatikkens terminal og ikke-terminal symboler. Attributternes værdier er resultatet af attribut evalueringsregler associeret med grammatikproduktioner. Attributter tillader overførsel af information fra et vilkårligt sted i det abstrakte syntakstræ til et vilkårligt andet sted, på en styret og formel måde.

Eksempler

Heltalsudtryk 
Det følgende er en simpel kontekstfri grammatik, som kan beskrive et sprog udgjort af multiplikation og addition af heltal.

  Expr → Expr + Term
  Expr → Term
  Term → Term * Factor
  Term → Factor
  Factor → "(" Expr ")"
  Factor → integer

Den følgende attributgrammatik kan anvendes til at beregne resultatet af et udtryk skrevet i grammatikken. Bemærk at denne grammatik kun anvender syntesiserede værdier, og at den derfor er en S-attributgrammatik.
  Expr1 → Expr2 + Term [ Expr1.value = Expr2.value + Term.value ]
  Expr → Term [ Expr.value = Term.value ]
  Term1 → Term2 * Factor [ Term1.value = Term2.value * Factor.value ]
  Term → Factor [ Term.value = Factor.value ]
  Factor → "(" Expr ")" [ Factor.value =  Expr.value ]
  Factor → integer [ Factor.value = strToInt(integer.str) ]

Programmeringssproget Ada 
Programmeringssproget Ada er blevet beskrevet i attributgrammatik.

Referencer 

 Original paper introducing attributed grammars: ,

Se også 
 Backus-Naur form (BNF)
 Udvidet Backus-Naur form (EBNF)

Implementation af programmeringssprog