Attributgrammatik
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]
Eksempler
[redigér | rediger kildetekst]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.
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
[redigér | rediger kildetekst]Programmeringssproget Ada er blevet beskrevet i attributgrammatik.[4][5]
Referencer
[redigér | rediger kildetekst]- ^ 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
- ^ 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..."
- ^ Knuth 1968, s. 134.
- ^ Kræver login: dl.acm.org: An attribute grammar for Ada, backup
- ^ 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),
Se også
[redigér | rediger kildetekst]- Backus-Naur form (BNF)
- Udvidet Backus-Naur form (EBNF)
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. |