Azərbaycanca AzərbaycancaБеларускі БеларускіDansk DanskDeutsch DeutschEspañola EspañolaFrançais FrançaisIndonesia IndonesiaItaliana Italiana日本語 日本語Қазақ ҚазақLietuvos LietuvosNederlands NederlandsPortuguês PortuguêsРусский Русскийසිංහල සිංහලแบบไทย แบบไทยTürkçe TürkçeУкраїнська Українська中國人 中國人United State United StateAfrikaans Afrikaans
Support
www.wp1.da-dk.nina.az
  • Wikipedia

Backus Naur form BNF er en metasyntaks dvs en formel måde at beskrive formelle sprogs syntaks BNF er en meget udbredt no

Backus-Naur form

Backus-Naur form
www.wp1.da-dk.nina.azhttps://www.wp1.da-dk.nina.az

Backus-Naur form (BNF) er en metasyntaks, dvs. en formel måde at beskrive formelle sprogs syntaks.

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 (variabel), der skal defineres.
  • | læses som "eller".
  • ::= læses som "består af".

Begreber, der er defineret (konstanter, terminale begreber), skrives som de er.

Historisk

BNF er opkaldt efter John Backus og danskeren Peter Naur. De var pionerer i datalogi med speciale i design af compilere. BNF blev oprindeligt lavet for at kunne beskrive reglerne i ALGOL 60. BNF har tydelige ligheder med Pāṇinis regler for grammatik, og BNF bliver derfor også nogle gange omtalt som Panini-Backus-formen.

Eksempler

Heltal

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. Eksemplet viser også nogle af begrænsningerne i BNF. Opremsning af beslægtede værdier er omstændelig, og valgfrie elementer er ikke markerede som sådanne. (EBNF (eng. Extended Backus-Naur form dansk udvidet Backus-Naur form) løser disse problemer.)

Folkeregisteradresse

Dette er en BNF for en dansk postadresse:

 <postadresse> ::= <persondel> <vej> <by> <persondel> ::= <titeldel> <navnedel> <linjeskift> <titeldel> ::= <titel> | "" <navnedel> ::= <fornavnedel> <efternavn> | <fornavnedel> <navnedel> <fornavnedel> ::= <fornavn> | <stort bogstav> "." <vej> ::= <vejnavn> <husnummer> <linjeskift> <husnummer> ::= <positivt heltal> | <positivt heltal> <bogstav> | <positivt heltal> <etageangivelse> | <positivt heltal> <bogstav> <etageangivelse> <etageangivelse> ::= <etage> "." | <etage> "." " " <lejlighedsdel> <etage> ::= st | <positivt heltal> <lejlighedsdel> ::= "tv" | "mf" | "th" <by> ::= <postnummer> <bynavn> <linjeskift> <postnummer> ::= <ciffer> <ciffer> <ciffer> <ciffer> <ciffer> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" 

BNF

Også definitionen af BNF kan opskrives med BNF:

 <syntax> ::= <rule> | <rule> <syntax> <rule> ::= <opt-whitespace> "<" <rule-name> ">" <opt-whitespace> "::=" <opt-whitespace> <expression> <line-end> <opt-whitespace> ::= " " <opt-whitespace> | "" <!-- "" is empty string, i.e. no whitespace --> <expression> ::= <list> | <list> "|" <expression> <line-end> ::= <opt-whitespace> <EOL> | <line-end> <line-end> <list> ::= <term> | <term> <opt-whitespace> <list> <term> ::= <literal> | "<" <rule-name> ">" <literal> ::= '"' <text> '"' | "'" <text> "'" <!-- actually, the original BNF didn't use quotes --> 

Dette er et godt eksempel på brugen af rekursion.

Programmeringssproget Ada

Programmeringssproget Ada er blevet beskrevet i en variant af BNF.

Se også

  • Attributgrammatik - formelt sprog med semantisk databehandling

Referencer

  1. Isaac Computer Science: Backus–Naur Form, backup
  2. Kræver login: NAUR, Peter (ed.), "Revised Report on the Algorithmic Language ALGOL 60.", Communications of the ACM, Vol. 3 No.5, pp. 299-314, May 1960.
  3. Backus, John W., "The Syntax and Semantics of the Proposed International Algebraic Language of the Zurich ACM-GAMM Conference," Proc. First Int'l. Conf. Information Processing, Butterworth, London, 1960, pp. 125-132. direkte link
  4. "Panini-Backus Form" suggested. January 1967 Communications of the ACM 10:137, direkte link, backup
  5. ada-auth.org: 1.1.4 Method of Description and Syntax Notation, backup

Eksterne henvisninger

  • BNF er anvendt her: RFC 733, RFC 822
  • W3C, World Wide Web Consortium: Notation


imageSpire
Denne artikel om datalogi eller et datalogi-relateret emne er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.

wikipedia, dansk, wiki, bog, bøger, bibliotek, artikel, læs, download, gratis, gratis download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, billede, musik, sang, film, bog, spil, spil, mobile, Phone, Android, iOS, Apple, mobiltelefon, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, sonya, mi, PC, web, computer

Udgivelsesdato: April 26, 2025, 05:17 am
De fleste læses
  • Kan 16, 2025

    Frederiksborg slot

  • Kan 15, 2025

    Frederik 2. af Baden

  • Kan 13, 2025

    Freden i Wien (1864)

  • Kan 16, 2025

    Freden i Rijswijk

  • Kan 16, 2025

    Freden i Fredrikshamn

Daglige
  • Riget

  • Tidsrejsen (julekalender)

  • Robertprisen

  • Søren Pilmark

  • Ruslands invasion af Ukraine 2022

  • Gazakrigen 2023-nu

  • Trumps ønske om at erhverve Grønland

  • Kassøværket

  • Pave

  • Konklavet 2025

NiNa.Az - Studio

  • Wikipedia

Tilmelding af nyhedsbrev

Ved at abonnere på vores mailingliste vil du altid modtage de seneste nyheder fra os.
Kom i kontakt
Kontakt os
DMCA Sitemap Feeds
© 2019 nina.az - Alle rettigheder forbeholdes.
Ophavsret: Dadaş Mammedov
Top