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

  1. ↑ Termen attributgrammatik er nævnt her i denne doktorafhandling: DAIMI PB-329, August 1990, Flemming Nilson. Teoretiske aspekter af Semantik-baseret Sprog-implementation ISSN 0105-8517 (dansk og engelsk) Citat: "...[pdf-side 60] attributgrammatikker...", backup
  2. ↑ ISBN 0201656973 : Syntax and Semantics of Programming Languages. A Laboratory Based Approach. Kenneth Slonneger. University of Iowa. Barry L. Kurtz. Louisiana Tech University. 1995: Chapter 3 ATTRIBUTE GRAMMARS. Citat: "...this chapter and the next we investigate two different techniques for augmenting a context-free grammar in order to verify context-sensitive conditions..."
  3. ↑ Knuth 1968, s. 134.
  4. ↑ Kræver login: dl.acm.org: An attribute grammar for Ada, backup
  5. ↑ An Attribute Grammar for the Semantic Analysis of ADA - Uhl, J: Attribute Grammar for the Semantic Analysis of ADA. ISBN 9783540115717

Se også

Spire
Denne artikel om datalogi eller et datalogi-relateret emne er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.