Spring til indhold

Attributgrammatik

Fra Wikipedia, den frie encyklopædi

En attributgrammatik[1] er en formel måde til at udvide en formel grammatik med semantisk databehandling.[2]

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.[3]

Heltalsudtryk

[redigér | rediger kildetekst]

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

 ExprExpr + Term
 ExprTerm
 TermTerm * Factor
 TermFactor
 Factor → "(" Expr ")"
 Factorinteger

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.

 Expr1Expr2 + Term [ Expr1.value = Expr2.value + Term.value ]
 ExprTerm [ Expr.value = Term.value ]
 Term1Term2 * Factor [ Term1.value = Term2.value * Factor.value ]
 TermFactor [ Term.value = Factor.value ]
 Factor → "(" Expr ")" [ Factor.value =  Expr.value ]
 Factorinteger [ Factor.value = strToInt(integer.str) ]

Programmeringssproget Ada

[redigér | rediger kildetekst]

Programmeringssproget Ada er blevet beskrevet i attributgrammatik.[4][5]

  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
  • Original paper introducing attributed grammars: Knuth, Donald E. (1968). "Semantics of context-free languages" (PDF). Mathematical Systems Theory. 2 (2): 127-145. doi:10.1007/BF01692511. S2CID 5182310. Arkiveret fra originalen den 19. maj 2020. Hentet 25. december 2021.{{cite journal}}: CS1-vedligeholdelse: BOT: original-url status ukendt (link),
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.