Backus–Naur-muoto (BNF, Backus–Naur form) on metakieli, jota käytetään ilmaisemaan kontekstiriippumattomia kielioppeja. BNF on nimetty sen kehittäneiden John Backuksen ja Peter Naurin mukaan. Kieltä oli aluksi kutsuttu myös nimellä "Backus Normal Form" mutta nimi muutettiin Naurin mukaan seurauksena Donald Knuthin kirjeestä Communications of the ACM:lle (1964). Knuthin mukaan Backus–Naur form nimi: antaa sopivan tunnustuksen molemmille kieleen vaikuttaneille säilyttää usein käytetyn lyhenteen "BNF" BNF ei ole varsinaisesti "normaalimuoto" ja siksi vain "muoto"
Backus–Naur-muotoa käytetään usein ohjelmointikielien, tiedostomuotojen ja protokollien kielioppien esitysmuotona. Sitä käytetään myös esittämään osia luonnollisten kielten kieliopeista. Useimmat ohjelmointikielien oppikirjoista dokumentoivat kielen BNF-muodossa. Joillain muunnelmilla on omat kielioppinsa.
Extended BNF (EBNF) on kielen laajennettu muoto. EBNF-muodosta on julkaistu ISO-standardi ISO/IEC 14977:1996. BNF-muodolla on ongelmia mikäli metasymbolit < > | ::= esiintyvät määriteltävässä kielessä. Niklaus Wirth ehdotti EBNF-muotoa Communications of the ACM -lehdessä vuonna 1977.
Augmented Backus–Naur (ABNF) -muodosta on IETF:n määrittelyt (korvaa ) ja sen päivitetty versio
Lähteet
Aiheesta muualla (korvaa: ) Augmented BNF for Syntax Specifications: ABNF backus normal form vs. Backus Naur form, Donald Knuth, ISO/IEC 14977:1996 julkisesti ladattava versio
Luokka:Formaalit kielet