Mi az a Backus Natur Form, és az Exteneded Bacus Natur Form?
BNF (Backus–Naur Form):
Elemei:
<szimbólum> ::= kifejezés
o <szimbólum>: ::=-től balra nemterminális (felbontható)
Kifejezés:
o Egy vagy több (terminális vagy nemterminális)
szimbólum
o Egymásutániság: több, szóközzel elválasztott
szimbólum
o Választás (valamelyik a felsorolásból áll az adott
helyen): |
Pl.:
<szám> ::= <számjegy> | <számjegy> <szám>
<számjegy> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
EBNF (Extended BNF)
C-szerűbb leírás, több nyelvi elem.
szám = számjegy , {számjegy};
számjegy = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
Ezeket így odavágja nekem a könyv, amiből programozni tanulok, de egy mukkot se értek belőle. Hogy kell ezeket értelmezni? C nyelvről van szó az esetemben
Egy jól irányzott link a wikipédiára segíthet:
Ha most tanulsz programozni, akkor ez a könyv nem neked való, vagy ugord át ezt a részt. A Hello World megvolt már?
Ez az a könyv?
Akkor ezt ugord át nyugodtan, sehol nem használja később a BNF-et, mindehol a szintaxis diagram van. Ha azt érted, az elég.
A nyilak az értelmezési szál haladási irányát jelentik, a számjegyek meg önmagukat.
Vagyis: "egy szám a következőkből áll: egy számjegy amit egy szám követhet. Egy számjegy lehet 0, 1, 2, 3, 4, 5, 6, 7, 8 vagy 9."
Vegyük például a 2015 számot. Ez leírható úgy is hogy
2(0(1(5))), ahol a zárójelben lévő részek számok, amik előtt egy számjegy áll. Vagyis:
5 (ami egy számjegy és egy szám is)
Az 1-es számjegy amit az 5-ös szám követ.
A 0-ás számjegy amit a 15-ös szám követ.
A 2-es számjegy amit a 015-ös szám követ.
A 2015-ös szám.
De téged ezek nem igazán érdekelnek; hacsak nem áll szándékodban egy lexikális parszert írni (ami a fordítóprogramok egyik eleme). Szóval nyugodtan átugorhatod ezeket: a fordítóprogramok bizonyos hibaüzeneteinek értelmezéséhez szükség lehet az ismeretükre, de nem elengedhetetlenül lényeges ismeret számodra.
(Egyébként pedig a Wikipédia cikk jól leírja hogy hogyan működik a BNF; ha nem érted, az a te problémád, nem a cikké.)
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!