BNF
Fra Wikipedia, den frie encyklopædi
Backus-Naur form (BNF-form) er en metasyntax, dvs. en formel måde at beskrive formelle sprog.
BNF er en meget udbredt notation til at beskrive grammatikken af programmeringsprog. De fleste lærebøger om teorien bag programmering beskriver programmeringssprog i BNF.
I BNF bruges nogle få simple symboler, som alle kan skrives på en skrivemaskine. Der bruges følgende symboler:
- < > markerer et begreb, der ikke er beskrevet til bunds.
- | bruges som "eller".
- ::= læses som "består af".
Begreber, der er kendte, skrives som de er.
[redigér] Overblik
BNF er opkaldt efter John Backus og danskeren Peter Naur. De var pionerer i datalogi med speciale i design af compilere. BNF har klare ligheder med Paninis regler for grammatik, og BNF bliver derfor også nogle gange omtalt som Panini-Backus-formen. BNF blev oprindeligt lavet for at kunne beskrive reglerne i ALGOL 60.
[redigér] Eksempel
Beskrivelse af heltal.
<heltal> ::= <positivt heltal> | <nul> | <negativt heltal> <positivt heltal> ::= <positivt ciffer> | <positivt heltal> <ciffer> <nul> ::= 0 <negativt heltal> ::= - <positivt heltal> <ciffer> ::= <positivt ciffer> | <nul> <positivt ciffer> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Som det fremgår af eksemplet beskrives gentagelser rekursivt. I eksemplet er et positivt heltal beskrevet som et positivt ciffer eller et positivt heltal efterfulgt af et ciffer. Eksempelt viser også nogle af begrænsningerne i BNF. Opremsning af beslægtede værdier er omstændig, og valgfrie elementer er ikke markerede som sådanne. EBNF løser disse problemer.
Denne it-artikel er kun påbegyndt. Hvis du ved mere om emnet, kan du hjælpe Wikipedia ved at udvide den. |