Backus–Naur-muoto
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, tiedostomuotojen ja protokollien kielioppien esitysmuotona.[5] 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.[6] BNF-muodolla on ongelmia mikäli metasymbolit < > | ::=
esiintyvät määriteltävässä kielessä.[7] Niklaus Wirth ehdotti EBNF-muotoa Communications of the ACM -lehdessä vuonna 1977.[8]
Augmented Backus–Naur (ABNF) -muodosta on IETF:n määrittelyt RFC 5234 (korvaa RFC 4234) ja sen päivitetty versio RFC 7405
Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ a b Robert D. Cameron: Grammatical Description of Syntax: The BNF Metalanguage cs.sfu.ca. 7.1.2002. Viitattu 5.10.2019. (englanniksi)
- ↑ John Backus computerhistory.org. Viitattu 3.9.2019. (englanniksi)
- ↑ Backus Normal Form vs. Backus Naur Form boost-spirit.com. Arkistoitu 29.4.2021. Viitattu 5.10.2019. (englanniksi)
- ↑ T.R.N. Rao & Subhash Kak: The Panini-Backus Form in Syntax of Formal Languages infinityfoundation.com. 1998. Viitattu 5.10.2019. (englanniksi)
- ↑ The language of languages matt.might.net. Viitattu 10.2.2020. (englanniksi)
- ↑ ISO/IEC 14977:1996 ISO. Viitattu 5.10.2019. (englanniksi)
- ↑ ISO/IEC 14977 Information technology - Syntactic metalanguage - Extended BNF. Geneve: International Organization for Standardization, 15.12.1996. (englanniksi)
- ↑ What Can We Do about the Unnecessary Diversity of Notation for Syntactic Definitions (PDF) cs.tufts.edu. 1977. Viitattu 5.10.2019. (englanniksi)
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- RFC 5234 (korvaa: RFC 4234) Augmented BNF for Syntax Specifications: ABNF (englanniksi)
- backus normal form vs. Backus Naur form, Donald Knuth, doi:10.1145/355588.365140 (englanniksi)
- ISO/IEC 14977:1996 julkisesti ladattava versio (englanniksi)