Avaa päävalikko

Backus–Naur-muoto (BNF, Backus–Naur form) on metakieli, jota käytetään ilmaisemaan kontekstiriippumattomia kielioppeja.[1] BNF on nimetty sen kehittäneiden John Backuksen ja Peter Naurin mukaan.[2] 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).[3] Knuthin mukaan Backus–Naur form nimi:[4]

  • 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, komentotulkkien ja tietoliikennekäytäntöjen 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.[1] EBNF-muodosta on julkaistu ISO-standardi ISO/IEC 14977:1996.[5] BNF-muodolla on ongelmia mikäli metasymbolit < > | ::= esiintyvät määriteltävässä kielessä.[6] Niklaus Wirth ehdotti EBNF-muotoa Communications of the ACM -lehdessä vuonna 1977.[7]

Augmented Backus–Naur (ABNF) -muodosta on IETF:n määrittelyt RFC 5234 (korvaa RFC 4234) ja sen päivitetty versio RFC 7405

LähteetMuokkaa

  1. a b Robert D. Cameron: Grammatical Description of Syntax: The BNF Metalanguage cs.sfu.ca. 7.1.2002. Viitattu 5.10.2019. (englanniksi)
  2. John Backus computerhistory.org. Viitattu 3.9.2019. (englanniksi)
  3. Backus Normal Form vs. Backus Naur Form boost-spirit.com. Viitattu 5.10.2019. (englanniksi) 
  4. T.R.N. Rao & Subhash Kak: The Panini-Backus Form in Syntax of Formal Languages infinityfoundation.com. 1998. Viitattu 5.10.2019. (englanniksi) 
  5. ISO/IEC 14977:1996 ISO. Viitattu 5.10.2019. (englanniksi) 
  6. ISO/IEC 14977 Information technology - Syntactic metalanguage - Extended BNF. Geneve: International Organization for Standardization, 15.12.1996. (englanniksi)
  7. What Can We Do about the Unnecessary Diversity of Notation for Syntactic Definitions (PDF) cs.tufts.edu. 1977. Viitattu 5.10.2019. (englanniksi)

Aiheesta muuallaMuokkaa

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.