CINXE.COM

Backus–Naur form - Wikipedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Backus–Naur form - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"b36f7b35-c464-4712-a808-45469103a868","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Backus–Naur_form","wgTitle":"Backus–Naur form","wgCurRevisionId":1275460566,"wgRevisionId":1275460566,"wgArticleId":62247,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description is different from Wikidata","Articles needing cleanup from December 2023","All pages needing cleanup","Articles containing how-to sections","Wikipedia articles that are too technical from December 2023","All articles that are too technical","Articles needing additional references from December 2023","All articles needing additional references","Articles with multiple maintenance issues", "Wikipedia articles needing clarification from May 2015","All articles with unsourced statements","Articles with unsourced statements from March 2020","Formal languages","Compiler construction","Metalanguages"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Backus–Naur_form","wgRelevantArticleId":62247,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgEditSubmitButtonLabelPublish":true, "wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q211577","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready", "ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","mediawiki.page.media","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.15"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Backus–Naur form - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Backus%E2%80%93Naur_form"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Backus–Naur_form rootpage-Backus–Naur_form skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Backus%E2%80%93Naur+form" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Backus%E2%80%93Naur+form" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Backus%E2%80%93Naur+form" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Backus%E2%80%93Naur+form" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Overview" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Overview"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Overview</span> </div> </a> <ul id="toc-Overview-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Example" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Example"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Example</span> </div> </a> <ul id="toc-Example-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>History</span> </div> </a> <ul id="toc-History-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Further_examples" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Further_examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Further examples</span> </div> </a> <ul id="toc-Further_examples-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Variants" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Variants"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Variants</span> </div> </a> <button aria-controls="toc-Variants-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Variants subsection</span> </button> <ul id="toc-Variants-sublist" class="vector-toc-list"> <li id="toc-EBNF" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#EBNF"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>EBNF</span> </div> </a> <ul id="toc-EBNF-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-ABNF" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ABNF"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>ABNF</span> </div> </a> <ul id="toc-ABNF-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Others" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Others"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.3</span> <span>Others</span> </div> </a> <ul id="toc-Others-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Software_using_BNF_or_variants" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Software_using_BNF_or_variants"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Software using BNF or variants</span> </div> </a> <button aria-controls="toc-Software_using_BNF_or_variants-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Software using BNF or variants subsection</span> </button> <ul id="toc-Software_using_BNF_or_variants-sublist" class="vector-toc-list"> <li id="toc-Software_that_accepts_BNF_(or_a_superset)_as_input" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Software_that_accepts_BNF_(or_a_superset)_as_input"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span> <span>Software that accepts BNF (or a superset) as input</span> </div> </a> <ul id="toc-Software_that_accepts_BNF_(or_a_superset)_as_input-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Similar_software" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Similar_software"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.2</span> <span>Similar software</span> </div> </a> <ul id="toc-Similar_software-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>External links</span> </div> </a> <button aria-controls="toc-External_links-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle External links subsection</span> </button> <ul id="toc-External_links-sublist" class="vector-toc-list"> <li id="toc-Language_grammars" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Language_grammars"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.1</span> <span>Language grammars</span> </div> </a> <ul id="toc-Language_grammars-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Backus–Naur form</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 37 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-37" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">37 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%B5%D9%8A%D8%BA%D8%A9_%D8%A8%D8%A7%D9%83%D9%88%D8%B3_%D9%86%D9%88%D8%B1" title="صيغة باكوس نور – Arabic" lang="ar" hreflang="ar" data-title="صيغة باكوس نور" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Bekus-Naur_formas%C4%B1" title="Bekus-Naur forması – Azerbaijani" lang="az" hreflang="az" data-title="Bekus-Naur forması" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Forma_de_Backus_i_Naur" title="Forma de Backus i Naur – Catalan" lang="ca" hreflang="ca" data-title="Forma de Backus i Naur" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Backusova%E2%80%93Naurova_forma" title="Backusova–Naurova forma – Czech" lang="cs" hreflang="cs" data-title="Backusova–Naurova forma" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Backus-Naur_form" title="Backus-Naur form – Danish" lang="da" hreflang="da" data-title="Backus-Naur form" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de badge-Q17437798 badge-goodarticle mw-list-item" title="good article badge"><a href="https://de.wikipedia.org/wiki/Backus-Naur-Form" title="Backus-Naur-Form – German" lang="de" hreflang="de" data-title="Backus-Naur-Form" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/%CE%9C%CE%BF%CF%81%CF%86%CE%AE_%CE%9C%CF%80%CE%AC%CE%BA%CE%BF%CF%85%CF%82-%CE%9D%CE%AC%CE%BF%CF%85%CF%81" title="Μορφή Μπάκους-Νάουρ – Greek" lang="el" hreflang="el" data-title="Μορφή Μπάκους-Νάουρ" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Notaci%C3%B3n_de_Backus-Naur" title="Notación de Backus-Naur – Spanish" lang="es" hreflang="es" data-title="Notación de Backus-Naur" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Formo_de_Backus%E2%80%93Naur" title="Formo de Backus–Naur – Esperanto" lang="eo" hreflang="eo" data-title="Formo de Backus–Naur" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Backus_eta_Naurren_formatu" title="Backus eta Naurren formatu – Basque" lang="eu" hreflang="eu" data-title="Backus eta Naurren formatu" data-language-autonym="Euskara" data-language-local-name="Basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%81%D8%B1%D9%85_%D8%A8%D8%A7%DA%A9%D9%88%D8%B3_%D9%86%D8%A7%D8%A6%D9%88%D8%B1" title="فرم باکوس نائور – Persian" lang="fa" hreflang="fa" data-title="فرم باکوس نائور" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Forme_de_Backus-Naur" title="Forme de Backus-Naur – French" lang="fr" hreflang="fr" data-title="Forme de Backus-Naur" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Backus-Naur_Form" title="Backus-Naur Form – Galician" lang="gl" hreflang="gl" data-title="Backus-Naur Form" data-language-autonym="Galego" data-language-local-name="Galician" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%B0%B0%EC%BB%A4%EC%8A%A4-%EB%82%98%EC%9A%B0%EB%A5%B4_%ED%91%9C%EA%B8%B0%EB%B2%95" title="배커스-나우르 표기법 – Korean" lang="ko" hreflang="ko" data-title="배커스-나우르 표기법" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%AC%E0%A4%BE%E0%A4%95%E0%A5%8D%E0%A4%95%E0%A4%B8-%E0%A4%A8%E0%A4%BE%E0%A4%B0_%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%B0%E0%A5%82%E0%A4%AA" title="बाक्कस-नार प्रारूप – Hindi" lang="hi" hreflang="hi" data-title="बाक्कस-नार प्रारूप" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Backus-Naurov_oblik" title="Backus-Naurov oblik – Croatian" lang="hr" hreflang="hr" data-title="Backus-Naurov oblik" data-language-autonym="Hrvatski" data-language-local-name="Croatian" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/BNF" title="BNF – Icelandic" lang="is" hreflang="is" data-title="BNF" data-language-autonym="Íslenska" data-language-local-name="Icelandic" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Backus-Naur_Form" title="Backus-Naur Form – Italian" lang="it" hreflang="it" data-title="Backus-Naur Form" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/%E1%83%91%E1%83%94%E1%83%99%E1%83%A3%E1%83%A1-%E1%83%9C%E1%83%90%E1%83%A3%E1%83%A0%E1%83%98%E1%83%A1_%E1%83%A4%E1%83%9D%E1%83%A0%E1%83%9B%E1%83%90%E1%83%9A%E1%83%98%E1%83%96%E1%83%9B%E1%83%98" title="ბეკუს-ნაურის ფორმალიზმი – Georgian" lang="ka" hreflang="ka" data-title="ბეკუს-ნაურის ფორმალიზმი" data-language-autonym="ქართული" data-language-local-name="Georgian" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-lmo mw-list-item"><a href="https://lmo.wikipedia.org/wiki/Backus-Naur_Form" title="Backus-Naur Form – Lombard" lang="lmo" hreflang="lmo" data-title="Backus-Naur Form" data-language-autonym="Lombard" data-language-local-name="Lombard" class="interlanguage-link-target"><span>Lombard</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Backus%E2%80%93Naur-forma" title="Backus–Naur-forma – Hungarian" lang="hu" hreflang="hu" data-title="Backus–Naur-forma" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Bentuk_Backus%E2%80%93Naur" title="Bentuk Backus–Naur – Malay" lang="ms" hreflang="ms" data-title="Bentuk Backus–Naur" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/BNF_(metataal)" title="BNF (metataal) – Dutch" lang="nl" hreflang="nl" data-title="BNF (metataal)" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%82%AB%E3%82%B9%E3%83%BB%E3%83%8A%E3%82%A6%E3%82%A2%E8%A8%98%E6%B3%95" title="バッカス・ナウア記法 – Japanese" lang="ja" hreflang="ja" data-title="バッカス・ナウア記法" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Backus-Naur_form" title="Backus-Naur form – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Backus-Naur form" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Notacja_BNF" title="Notacja BNF – Polish" lang="pl" hreflang="pl" data-title="Notacja BNF" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Formalismo_de_Backus-Naur" title="Formalismo de Backus-Naur – Portuguese" lang="pt" hreflang="pt" data-title="Formalismo de Backus-Naur" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0_%D0%91%D1%8D%D0%BA%D1%83%D1%81%D0%B0_%E2%80%94_%D0%9D%D0%B0%D1%83%D1%80%D0%B0" title="Форма Бэкуса — Наура – Russian" lang="ru" hreflang="ru" data-title="Форма Бэкуса — Наура" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%91%D0%B0%D0%BA%D1%83%D1%81%E2%80%93%D0%9D%D0%B0%D1%83%D1%80%D0%BE%D0%B2%D0%B0_%D1%84%D0%BE%D1%80%D0%BC%D0%B0" title="Бакус–Наурова форма – Serbian" lang="sr" hreflang="sr" data-title="Бакус–Наурова форма" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Backus-Naurov_oblik" title="Backus-Naurov oblik – Serbo-Croatian" lang="sh" hreflang="sh" data-title="Backus-Naurov oblik" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="Serbo-Croatian" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Backus%E2%80%93Naur-muoto" title="Backus–Naur-muoto – Finnish" lang="fi" hreflang="fi" data-title="Backus–Naur-muoto" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Backus-Naur-form" title="Backus-Naur-form – Swedish" lang="sv" hreflang="sv" data-title="Backus-Naur-form" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AF%87%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AE%9A%E0%AF%81-%E0%AE%A8%E0%AE%BE%E0%AE%B0%E0%AF%8D_%E0%AE%AE%E0%AF%81%E0%AE%B1%E0%AF%88" title="பேக்கசு-நார் முறை – Tamil" lang="ta" hreflang="ta" data-title="பேக்கசு-நார் முறை" data-language-autonym="தமிழ்" data-language-local-name="Tamil" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A3%E0%B8%B9%E0%B8%9B%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%81%E0%B8%9A%E0%B8%81%E0%B8%84%E0%B8%B1%E0%B8%AA-%E0%B9%80%E0%B8%99%E0%B8%B2%E0%B8%A3%E0%B9%8C" title="รูปแบบแบกคัส-เนาร์ – Thai" lang="th" hreflang="th" data-title="รูปแบบแบกคัส-เนาร์" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Backus-Naur_form" title="Backus-Naur form – Turkish" lang="tr" hreflang="tr" data-title="Backus-Naur form" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9D%D0%BE%D1%82%D0%B0%D1%86%D1%96%D1%8F_%D0%91%D0%B5%D0%BA%D1%83%D1%81%D0%B0_%E2%80%94_%D0%9D%D0%B0%D1%83%D1%80%D0%B0" title="Нотація Бекуса — Наура – Ukrainian" lang="uk" hreflang="uk" data-title="Нотація Бекуса — Наура" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%B7%B4%E7%A7%91%E6%96%AF%E8%8C%83%E5%BC%8F" title="巴科斯范式 – Chinese" lang="zh" hreflang="zh" data-title="巴科斯范式" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q211577#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Backus%E2%80%93Naur_form" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Backus%E2%80%93Naur_form" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Backus%E2%80%93Naur_form"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Backus%E2%80%93Naur_form"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Backus%E2%80%93Naur_form" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Backus%E2%80%93Naur_form" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;oldid=1275460566" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Backus%E2%80%93Naur_form&amp;id=1275460566&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBackus%25E2%2580%2593Naur_form"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBackus%25E2%2580%2593Naur_form"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Backus%E2%80%93Naur_form&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Backus%E2%80%93Naur_Form" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q211577" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Formalism to describe programming languages</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="/wiki/Boyce%E2%80%93Codd_normal_form" title="Boyce–Codd normal form">Boyce–Codd normal form</a>.</div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><style data-mw-deduplicate="TemplateStyles:r1248332772">.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}</style><table class="box-Multiple_issues plainlinks metadata ambox ambox-content ambox-multiple_issues compact-ambox" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/40px-Ambox_important.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/60px-Ambox_important.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/80px-Ambox_important.svg.png 2x" data-file-width="40" data-file-height="40" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span"><div class="multiple-issues-text mw-collapsible"><b>This article has multiple issues.</b> Please help <b><a href="/wiki/Special:EditPage/Backus%E2%80%93Naur_form" title="Special:EditPage/Backus–Naur form">improve it</a></b> or discuss these issues on the <b><a href="/wiki/Talk:Backus%E2%80%93Naur_form" title="Talk:Backus–Naur form">talk page</a></b>. <small><i>(<a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove these messages</a>)</i></small> <div class="mw-collapsible-content"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1251242444"><table class="box-Howto plainlinks metadata ambox ambox-content" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/40px-Ambox_important.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/60px-Ambox_important.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/80px-Ambox_important.svg.png 2x" data-file-width="40" data-file-height="40" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>contains <a href="/wiki/Wikipedia:What_Wikipedia_is_not#NOTHOWTO" title="Wikipedia:What Wikipedia is not">instructions, advice, or how-to content</a></b>.<span class="hide-when-compact"> Please help <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit">rewrite the content</a> so that it is more encyclopedic or <a href="https://meta.wikimedia.org/wiki/Help:Transwiki" class="extiw" title="m:Help:Transwiki">move</a> it to <a href="https://en.wikiversity.org/wiki/" class="extiw" title="v:">Wikiversity</a>, <a href="https://en.wikibooks.org/wiki/" class="extiw" title="b:">Wikibooks</a>, or <a href="https://en.wikivoyage.org/wiki/" class="extiw" title="voy:">Wikivoyage</a>.</span> <span class="date-container"><i>(<span class="date">December 2023</span>)</i></span></div></td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1251242444"><table class="box-Technical plainlinks metadata ambox ambox-style ambox-technical" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/f/f2/Edit-clear.svg/40px-Edit-clear.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/f/f2/Edit-clear.svg/60px-Edit-clear.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/f/f2/Edit-clear.svg/80px-Edit-clear.svg.png 2x" data-file-width="48" data-file-height="48" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>may be too technical for most readers to understand</b>.<span class="hide-when-compact"> Please <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit">help improve it</a> to <a href="/wiki/Wikipedia:Make_technical_articles_understandable" title="Wikipedia:Make technical articles understandable">make it understandable to non-experts</a>, without removing the technical details.</span> <span class="date-container"><i>(<span class="date">December 2023</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1251242444"><table class="box-More_citations_needed plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>needs additional citations for <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verification</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Backus%E2%80%93Naur_form" title="Special:EditPage/Backus–Naur form">improve this article</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>. Unsourced material may be challenged and removed.<br /><small><span class="plainlinks"><i>Find sources:</i>&#160;<a rel="nofollow" class="external text" href="https://www.google.com/search?as_eq=wikipedia&amp;q=%22Backus%E2%80%93Naur+form%22">"Backus–Naur form"</a>&#160;–&#160;<a rel="nofollow" class="external text" href="https://www.google.com/search?tbm=nws&amp;q=%22Backus%E2%80%93Naur+form%22+-wikipedia&amp;tbs=ar:1">news</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?&amp;q=%22Backus%E2%80%93Naur+form%22&amp;tbs=bkt:s&amp;tbm=bks">newspapers</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?tbs=bks:1&amp;q=%22Backus%E2%80%93Naur+form%22+-wikipedia">books</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://scholar.google.com/scholar?q=%22Backus%E2%80%93Naur+form%22">scholar</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.jstor.org/action/doBasicSearch?Query=%22Backus%E2%80%93Naur+form%22&amp;acc=on&amp;wc=on">JSTOR</a></span></small></span> <span class="date-container"><i>(<span class="date">December 2023</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> </div> </div><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <p>In <a href="/wiki/Computer_science" title="Computer science">computer science</a>, <b>Backus–Naur form</b> (<b>BNF</b>; <span class="rt-commentedText nowrap"><span class="IPA nopopups noexcerpt" lang="en-fonipa"><a href="/wiki/Help:IPA/English" title="Help:IPA/English">/<span style="border-bottom:1px dotted"><span title="/ˌ/: secondary stress follows">ˌ</span><span title="&#39;b&#39; in &#39;buy&#39;">b</span><span title="/æ/: &#39;a&#39; in &#39;bad&#39;">æ</span><span title="&#39;k&#39; in &#39;kind&#39;">k</span><span title="/ə/: &#39;a&#39; in &#39;about&#39;">ə</span><span title="&#39;s&#39; in &#39;sigh&#39;">s</span></span><span class="wrap"> </span><span style="border-bottom:1px dotted"><span title="/ˈ/: primary stress follows">ˈ</span><span title="&#39;n&#39; in &#39;nigh&#39;">n</span><span title="/aʊər/: &#39;our&#39; in &#39;hour&#39;">aʊər</span></span>/</a></span></span>; <b>Backus normal form</b>) is a notation used to describe the <a href="/wiki/Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> of <a href="/wiki/Programming_language" title="Programming language">programming languages</a> or other <a href="/wiki/Formal_language" title="Formal language">formal languages</a>. It was developed by <a href="/wiki/John_Backus" title="John Backus">John Backus</a> and <a href="/wiki/Peter_Naur" title="Peter Naur">Peter Naur</a>. BNF can be described as a <a href="/wiki/Metasyntax" title="Metasyntax">metasyntax</a> notation for <a href="/wiki/Context-free_grammar" title="Context-free grammar">context-free grammars</a>. Backus–Naur form is applied wherever exact descriptions of languages are needed, such as in official language specifications, in manuals, and in textbooks on programming language theory. BNF can be used to describe <a href="/wiki/Document_format" class="mw-redirect" title="Document format">document formats</a>, <a href="/wiki/Instruction_set" class="mw-redirect" title="Instruction set">instruction sets</a>, and <a href="/wiki/Communication_protocol" title="Communication protocol">communication protocols</a>. </p><p>Over time, many extensions and variants of the original Backus–Naur notation have been created; some are exactly defined, including <a href="/wiki/Extended_Backus%E2%80%93Naur_form" title="Extended Backus–Naur form">extended Backus–Naur form</a> (EBNF) and <a href="/wiki/Augmented_Backus%E2%80%93Naur_form" title="Augmented Backus–Naur form">augmented Backus–Naur form</a> (ABNF). </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=1" title="Edit section: Overview"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>BNFs describe how to combine different symbols to produce a syntactically correct sequence. BNFs consist of three components: a set of non-terminal symbols, a set of terminal symbols, and rules for replacing non-terminal symbols with a sequence of symbols.<sup id="cite_ref-janikow_1-0" class="reference"><a href="#cite_note-janikow-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> These so-called "derivation rules" are written as </p> <div class="mw-highlight mw-highlight-lang-bnf mw-content-ltr" dir="ltr"><pre><span></span> <span class="p">&lt;</span><span class="nc">symbol</span><span class="p">&gt;</span> <span class="o">::=</span> __expression__ </pre></div> <p>where: </p> <ul><li><code>&lt;<a href="/wiki/Symbol" title="Symbol">symbol</a>&gt;</code><sup id="cite_ref-class_2-0" class="reference"><a href="#cite_note-class-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> is a <i><a href="/wiki/Nonterminal" class="mw-redirect" title="Nonterminal">nonterminal</a></i> variable that is always enclosed between the pair &lt;&gt;.</li> <li><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">::=</code> means that the symbol on the left must be replaced with the expression on the right.</li> <li><a href="/wiki/Expression_(mathematics)" title="Expression (mathematics)"><code>__expression__</code></a> consists of one or more sequences of either terminal or nonterminal symbols where each sequence is separated by a <a href="/wiki/Vertical_bar" title="Vertical bar">vertical bar</a> "|" indicating a <a href="/wiki/Alternation_(formal_language_theory)" title="Alternation (formal language theory)">choice</a>, the whole being a possible substitution for the symbol on the left.</li></ul> <p>All syntactically correct sequences must be generated in the following manner: </p> <ul><li>Initialize the sequence so that it just contains one start symbol.</li> <li>Apply derivation rules to this start symbol and the ensuing sequences of symbols.<sup id="cite_ref-janikow_1-1" class="reference"><a href="#cite_note-janikow-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup></li></ul> <p>Applying rules in this manner can produce longer and longer sequences, so many BNF definitions allow for a special "delete" symbol to be included in the specification. We can specify a rule that allows us to replace some symbols with this "delete" symbol, which is meant to indicate that we can remove the symbols from our sequence and still have a syntactically correct sequence.<sup id="cite_ref-janikow_1-2" class="reference"><a href="#cite_note-janikow-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Example">Example</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=2" title="Edit section: Example"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>As an example, consider this possible BNF for a U.S. <a href="/wiki/Address_(geography)" class="mw-redirect" title="Address (geography)">postal address</a>: </p> <div class="mw-highlight mw-highlight-lang-bnf mw-content-ltr" dir="ltr"><pre><span></span> <span class="p">&lt;</span><span class="nc">postal-address</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">name-part</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">street-address</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">zip-part</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">name-part</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">personal-part</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">last-name</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">opt-suffix-part</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">EOL</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">personal-part</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">name-part</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">personal-part</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">first-name</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">initial</span><span class="p">&gt;</span> &quot;.&quot; <span class="p">&lt;</span><span class="nc">street-address</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">house-num</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">street-name</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">opt-apt-num</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">EOL</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">zip-part</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">town-name</span><span class="p">&gt;</span> &quot;,&quot; <span class="p">&lt;</span><span class="nc">state-code</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">ZIP-code</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">EOL</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">opt-suffix-part</span><span class="p">&gt;</span> <span class="o">::=</span> &quot;Sr.&quot; | &quot;Jr.&quot; | <span class="p">&lt;</span><span class="nc">roman-numeral</span><span class="p">&gt;</span> | &quot;&quot; <span class="p">&lt;</span><span class="nc">opt-apt-num</span><span class="p">&gt;</span> <span class="o">::=</span> &quot;Apt&quot; <span class="p">&lt;</span><span class="nc">apt-num</span><span class="p">&gt;</span> | &quot;&quot; </pre></div> <p>This translates into English as: </p> <ul><li>A postal address consists of a name-part, followed by a <a href="/wiki/Street_name" title="Street name">street-address</a> part, followed by a <a href="/wiki/ZIP_Code" title="ZIP Code">zip-code</a> part.</li> <li>A name-part consists of either: a personal-part followed by a <a href="/wiki/Last_name" class="mw-redirect" title="Last name">last name</a> followed by an optional <a href="/wiki/Suffix_(name)" title="Suffix (name)">suffix</a> (Jr. Sr., or dynastic number) and <a href="/wiki/End-of-line" class="mw-redirect" title="End-of-line">end-of-line</a>, or a personal part followed by a name part (this rule illustrates the use of <a href="/wiki/Recursion_(computer_science)" title="Recursion (computer science)">recursion</a> in BNFs, covering the case of people who use multiple first and middle names and initials).<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup></li> <li>A personal-part consists of either a <a href="/wiki/First_name" class="mw-redirect" title="First name">first name</a> or an <a href="/wiki/Initial" title="Initial">initial</a> followed by a dot.</li> <li>A street address consists of a house number, followed by a street name, followed by an optional <a href="/wiki/Apartment" title="Apartment">apartment</a> specifier, followed by an end-of-line.</li> <li>A zip-part consists of a <a href="/wiki/Town" title="Town">town</a>-name, followed by a comma, followed by a <a href="/wiki/U.S._postal_abbreviations" class="mw-redirect" title="U.S. postal abbreviations">state code</a>, followed by a ZIP-code followed by an end-of-line.</li> <li>An opt-suffix-part consists of a suffix, such as "Sr.", "Jr." or a <a href="/wiki/Roman_numerals" title="Roman numerals">roman-numeral</a>, or an empty string (i.e. nothing).</li> <li>An opt-apt-num consists of a prefix "Apt" followed by an apartment number, or an empty string (i.e. nothing).</li></ul> <p>Note that many things (such as the format of a first-name, apartment number, ZIP-code, and Roman numeral) are left unspecified here. If necessary, they may be described using additional BNF rules. </p> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=3" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The idea of describing the structure of language using <a href="/wiki/Rewrite_rule" class="mw-redirect" title="Rewrite rule">rewriting rules</a> can be traced back to at least the work of <a href="/wiki/P%C4%81%E1%B9%87ini" title="Pāṇini">Pāṇini</a>, an ancient Indian Sanskrit grammarian and a revered scholar in Hinduism who lived sometime between the 6th and 4th century <a href="/wiki/Before_Christ" class="mw-redirect" title="Before Christ">BC</a>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> His notation to describe <a href="/wiki/Sanskrit" title="Sanskrit">Sanskrit</a> word structure is equivalent in power to that of Backus and has many similar properties. </p><p>In Western society, grammar was long regarded as a subject for teaching, rather than scientific study; descriptions were informal and targeted at practical usage. In the first half of the 20th century, <a href="/wiki/Linguistics" title="Linguistics">linguists</a> such as <a href="/wiki/Leonard_Bloomfield" title="Leonard Bloomfield">Leonard Bloomfield</a> and <a href="/wiki/Zellig_Harris" title="Zellig Harris">Zellig Harris</a> started attempts to formalize the description of language, including <a href="/wiki/Phrase_structure_rules" title="Phrase structure rules">phrase structure</a>. </p><p>Meanwhile, <a href="/wiki/Semi-Thue_system" title="Semi-Thue system">string rewriting rules</a> as <a href="/wiki/Formal_logical_systems" class="mw-redirect" title="Formal logical systems">formal logical systems</a> were introduced and studied by mathematicians such as <a href="/wiki/Axel_Thue" title="Axel Thue">Axel Thue</a> (in 1914), <a href="/wiki/Emil_Post" class="mw-redirect" title="Emil Post">Emil Post</a> (1920s–40s) and <a href="/wiki/Alan_Turing" title="Alan Turing">Alan Turing</a> (1936). <a href="/wiki/Noam_Chomsky" title="Noam Chomsky">Noam Chomsky</a>, teaching linguistics to students of <a href="/wiki/Information_theory" title="Information theory">information theory</a> at <a href="/wiki/MIT" class="mw-redirect" title="MIT">MIT</a>, combined linguistics and mathematics by taking what is essentially Thue's formalism as the basis for the description of the syntax of <a href="/wiki/Natural_language" title="Natural language">natural language</a>. He also introduced a clear distinction between generative rules (those of <a href="/wiki/Context-free_grammar" title="Context-free grammar">context-free grammars</a>) and transformation rules (1956).<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Chomsky1957_7-0" class="reference"><a href="#cite_note-Chomsky1957-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> </p><p><a href="/wiki/John_Backus" title="John Backus">John Backus</a>, a programming language designer at <a href="/wiki/IBM" title="IBM">IBM</a>, proposed a <a href="/wiki/Metalanguage" title="Metalanguage">metalanguage</a> of "metalinguistic formulas"<sup id="cite_ref-class_2-1" class="reference"><a href="#cite_note-class-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Backus.1969_9-0" class="reference"><a href="#cite_note-Backus.1969-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup> to describe the syntax of the new programming language IAL, known today as <a href="/wiki/ALGOL_58" title="ALGOL 58">ALGOL 58</a> (1959). His notation was first used in the ALGOL 60 report. </p><p>BNF is a notation for Chomsky's context-free grammars. Backus may have been familiar with Chomsky's work,<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup> but there are some doubts about this.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">&#91;</span>12<span class="cite-bracket">&#93;</span></a></sup> </p><p>As proposed by Backus, the formula defined "classes" whose names are enclosed in angle brackets. For example, <code>&lt;ab&gt;</code>. Each of these names denotes a class of basic symbols.<sup id="cite_ref-class_2-2" class="reference"><a href="#cite_note-class-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> </p><p>Further development of <a href="/wiki/ALGOL" title="ALGOL">ALGOL</a> led to <a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a>. In the committee's 1963 report, <a href="/wiki/Peter_Naur" title="Peter Naur">Peter Naur</a> called Backus's notation <i>Backus normal form</i>. <a href="/wiki/Donald_Knuth" title="Donald Knuth">Donald Knuth</a> argued that BNF should rather be read as <i>Backus–Naur form</i>, as it is "not a <a href="/wiki/Normal_form_(term_rewriting)" class="mw-redirect" title="Normal form (term rewriting)">normal form</a> in the conventional sense",<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup> unlike, for instance, <a href="/wiki/Chomsky_normal_form" title="Chomsky normal form">Chomsky normal form</a>. The name <i>Pāṇini Backus form</i> was also once suggested in view of the fact that the expansion <i>Backus normal form</i> may not be accurate, and that <a href="/wiki/P%C4%81%E1%B9%87ini" title="Pāṇini">Pāṇini</a> had independently developed a similar notation earlier.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">&#91;</span>14<span class="cite-bracket">&#93;</span></a></sup> </p><p>BNF is described by Peter Naur in the ALGOL 60 report as <i>metalinguistic formula</i>:<sup id="cite_ref-ALGOL60RPT_15-0" class="reference"><a href="#cite_note-ALGOL60RPT-15"><span class="cite-bracket">&#91;</span>15<span class="cite-bracket">&#93;</span></a></sup> </p> <style data-mw-deduplicate="TemplateStyles:r1244412712">.mw-parser-output .templatequote{overflow:hidden;margin:1em 0;padding:0 32px}.mw-parser-output .templatequotecite{line-height:1.5em;text-align:left;margin-top:0}@media(min-width:500px){.mw-parser-output .templatequotecite{padding-left:1.6em}}</style><blockquote class="templatequote"><p>Sequences of characters enclosed in the brackets &lt;&gt; represent metalinguistic variables whose values are sequences of symbols. The marks "::=" and "&#124;" (the latter with the meaning of "or") are metalinguistic connectives. Any mark in a formula, which is not a variable or a connective, denotes itself. Juxtaposition of marks or variables in a formula signifies juxtaposition of the sequence denoted.</p></blockquote> <p>Another example from the ALGOL 60 report illustrates a major difference between the BNF metalanguage and a Chomsky context-free grammar. Metalinguistic variables do not require a rule defining their formation. Their formation may simply be described in natural language within the &lt;&gt; brackets. The following ALGOL 60 report section 2.3 comments specification, exemplifies how this works: </p> <blockquote> <p>For the purpose of including text among the symbols of a program the following "comment" conventions hold: </p> <table class="wikitable"> <tbody><tr> <th>The sequence of basic symbols: </th> <th>is equivalent to </th></tr> <tr> <td><b>;</b> <b>comment</b> &lt;any sequence not containing ';'&gt;; </td> <td><b>;</b> </td></tr> <tr> <td><b>begin</b> <b>comment</b> &lt;any sequence not containing ';'&gt;; </td> <td><b>begin</b> </td></tr> <tr> <td><b>end</b> &lt;any sequence not containing 'end' or ';' or 'else'&gt; </td> <td><b>end</b> </td></tr> </tbody></table> <p>Equivalence here means that any of the three structures shown in the left column may be replaced, in any occurrence outside of strings, by the symbol shown in the same line in the right column without any effect on the action of the program. </p> </blockquote> <p>Naur changed two of Backus's symbols to commonly available characters. The <code>::=</code> symbol was originally a <code>:≡</code>. The <code>|</code> symbol was originally the word "<span style="text-decoration:overline;">or</span>" (with a bar over it).<sup id="cite_ref-Backus.1969_9-1" class="reference"><a href="#cite_note-Backus.1969-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup><sup class="reference nowrap"><span title="Page / location: 14">&#58;&#8202;14&#8202;</span></sup> </p><p>BNF is very similar to <a href="/wiki/Canonical_form_(Boolean_algebra)" class="mw-redirect" title="Canonical form (Boolean algebra)">canonical-form</a> <a href="/wiki/Boolean_algebra" title="Boolean algebra">Boolean algebra</a> equations that are, and were at the time, used in logic-circuit design. Backus was a mathematician and the designer of the FORTRAN programming language. Studies of Boolean algebra is commonly part of a mathematics curriculum. Neither Backus nor Naur described the names enclosed in <code>&lt; &gt;</code> as non-terminals. Chomsky's terminology was not originally used in describing BNF. Naur later described them as classes in ALGOL course materials.<sup id="cite_ref-class_2-3" class="reference"><a href="#cite_note-class-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> In the ALGOL 60 report they were called metalinguistic variables. Anything other than the metasymbols <code>::=</code>, <code>|</code>, and class names enclosed in <code>&lt; &gt;</code> are symbols of the language being defined. The metasymbol <code>::=</code> is to be interpreted as "is defined as". The <code>|</code> is used to separate alternative definitions and is interpreted as "or". The metasymbols <code>&lt; &gt;</code> are delimiters enclosing a class name. BNF is described as a <a href="/wiki/Metalanguage" title="Metalanguage">metalanguage</a> for talking about ALGOL by Peter Naur and <a href="/wiki/Saul_Rosen" title="Saul Rosen">Saul Rosen</a>.<sup id="cite_ref-class_2-4" class="reference"><a href="#cite_note-class-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> </p><p>In 1947 <a href="/wiki/Saul_Rosen" title="Saul Rosen">Saul Rosen</a> became involved in the activities of the fledgling <a href="/wiki/Association_for_Computing_Machinery" title="Association for Computing Machinery">Association for Computing Machinery</a>, first on the languages committee that became the IAL group and eventually led to ALGOL. He was the first managing editor of the Communications of the ACM.<sup class="noprint Inline-Template" style="margin-left:0.1em; white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Please_clarify" title="Wikipedia:Please clarify"><span title="The ACM was founded in 1947. ACM SIGPLAN wasn&#39;t founded earlier. (May 2015)">clarification needed</span></a></i>&#93;</sup> BNF was first used as a metalanguage to talk about the ALGOL language in the ALGOL 60 report. That is how it is explained in ALGOL programming course material developed by Peter Naur in 1962.<sup id="cite_ref-class_2-5" class="reference"><a href="#cite_note-class-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> Early ALGOL manuals by IBM, Honeywell, Burroughs and Digital Equipment Corporation followed the ALGOL 60 report using it as a metalanguage. Saul Rosen in his book<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup> describes BNF as a metalanguage for talking about ALGOL. An example of its use as a metalanguage would be in defining an arithmetic expression: </p> <style data-mw-deduplicate="TemplateStyles:r996643573">.mw-parser-output .block-indent{padding-left:3em;padding-right:0;overflow:hidden}</style><div class="block-indent"><div class="mw-highlight mw-highlight-lang-bnf mw-content-ltr" dir="ltr"><pre><span></span><span class="p">&lt;</span><span class="nc">expr</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">term</span><span class="p">&gt;</span>|<span class="p">&lt;</span><span class="nc">expr</span><span class="p">&gt;&lt;</span><span class="nc">addop</span><span class="p">&gt;&lt;</span><span class="nc">term</span><span class="p">&gt;</span> </pre></div></div> <p>The first symbol of an alternative may be the class being defined, the repetition, as explained by Naur, having the function of specifying that the alternative sequence can recursively begin with a previous alternative and can be repeated any number of times.<sup id="cite_ref-class_2-6" class="reference"><a href="#cite_note-class-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> For example, above <code>&lt;expr&gt;</code> is defined as a <code>&lt;term&gt;</code> followed by any number of <code>&lt;addop&gt; &lt;term&gt;</code>. </p><p>In some later metalanguages, such as Schorre's <a href="/wiki/META_II" title="META II">META II</a>, the BNF recursive repeat construct is replaced by a sequence operator and target language symbols defined using quoted strings. The <code>&lt;</code> and <code>&gt;</code> brackets were removed. Parentheses <code>(</code><code>)</code> for mathematical grouping were added. The <code>&lt;expr&gt;</code> rule would appear in META II as </p> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r996643573"><div class="block-indent"><div class="mw-highlight mw-highlight-lang-ebnf mw-content-ltr" dir="ltr"><pre><span></span><span class="k">EXPR </span><span class="o">=</span> <span class="k">TERM </span><span class="err">$</span><span class="p">(</span><span class="s1">&#39;+&#39;</span> <span class="k">TERM </span><span class="p">.</span><span class="k">OUT</span><span class="err">(&#39;</span><span class="k">ADD</span><span class="err">&#39;)</span> <span class="err">|</span> <span class="err">&#39;-&#39;</span> <span class="k">TERM </span><span class="err">.</span><span class="k">OUT</span><span class="err">(&#39;</span><span class="k">SUB</span><span class="err">&#39;));</span> </pre></div></div> <p>These changes enabled META II and its derivative programming languages to define and extend their own metalanguage, at the cost of the ability to use a natural language description, metalinguistic variable, language construct description. Many spin-off metalanguages were inspired by BNF.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (March 2020)">citation needed</span></a></i>&#93;</sup> See <a href="/wiki/META_II" title="META II">META II</a>, <a href="/wiki/TREE-META" title="TREE-META">TREE-META</a>, and <a href="/wiki/Metacompiler" class="mw-redirect" title="Metacompiler">Metacompiler</a>. </p><p>A BNF class describes a language construct formation, with formation defined as a pattern or the action of forming the pattern. The class name expr is described in a natural language as a <code>&lt;term&gt;</code> followed by a sequence <code>&lt;addop&gt; &lt;term&gt;</code>. A class is an abstraction; we can talk about it independent of its formation. We can talk about term, independent of its definition, as being added or subtracted in expr. We can talk about a term being a specific data type and how an expr is to be evaluated having specific combinations of data types, or even reordering an expression to group data types and evaluation results of mixed types. The natural-language supplement provided specific details of the language class semantics to be used by a compiler implementation and a programmer writing an ALGOL program. Natural-language description further supplemented the syntax as well. The integer rule is a good example of natural and metalanguage used to describe syntax: </p> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r996643573"><div class="block-indent"><div class="mw-highlight mw-highlight-lang-bnf mw-content-ltr" dir="ltr"><pre><span></span><span class="p">&lt;</span><span class="nc">integer</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">digit</span><span class="p">&gt;</span>|<span class="p">&lt;</span><span class="nc">integer</span><span class="p">&gt;&lt;</span><span class="nc">digit</span><span class="p">&gt;</span> </pre></div></div> <p>There are no specifics on white space in the above. As far as the rule states, we could have space between the digits. In the natural language we complement the BNF metalanguage by explaining that the digit sequence can have no white space between the digits. English is only one of the possible natural languages. Translations of the ALGOL reports were available in many natural languages. </p><p>The origin of BNF is not as important as its impact on programming language development.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (March 2020)">citation needed</span></a></i>&#93;</sup> During the period immediately following the publication of the ALGOL 60 report BNF was the basis of many <a href="/wiki/Compiler-compiler" title="Compiler-compiler">compiler-compiler</a> systems. </p><p>Some, like "A Syntax Directed Compiler for ALGOL 60" developed by Edgar T. Irons and "A Compiler Building System" developed by Brooker and Morris, directly used BNF. Others, like the Schorre Metacompilers, made it into a programming language with only a few changes. <code>&lt;class name&gt;</code> became symbol identifiers, dropping the enclosing <code>&lt;</code>, <code>&gt;</code> and using quoted strings for symbols of the target language. Arithmetic-like grouping provided a simplification that removed using classes where grouping was its only value. The META II arithmetic expression rule shows grouping use. Output expressions placed in a META II rule are used to output code and labels in an assembly language. Rules in META II are equivalent to a class definitions in BNF. The Unix utility <a href="/wiki/Yacc" title="Yacc">yacc</a> is based on BNF with code production similar to META II. yacc is most commonly used as a <a href="/wiki/Parser_generator" class="mw-redirect" title="Parser generator">parser generator</a>, and its roots are obviously BNF. </p><p>BNF today is one of the oldest computer-related languages still in use.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (March 2020)">citation needed</span></a></i>&#93;</sup> </p> <div class="mw-heading mw-heading2"><h2 id="Further_examples">Further examples</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=4" title="Edit section: Further examples"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:Bnf-syntax-diagram.png" class="mw-file-description"><img alt="BNF syntax diagram" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/60/Bnf-syntax-diagram.png/220px-Bnf-syntax-diagram.png" decoding="async" width="220" height="1286" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/60/Bnf-syntax-diagram.png/330px-Bnf-syntax-diagram.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/60/Bnf-syntax-diagram.png/440px-Bnf-syntax-diagram.png 2x" data-file-width="1060" data-file-height="6196" /></a><figcaption>BNF <a href="/wiki/Syntax_diagram" title="Syntax diagram">syntax diagram</a></figcaption></figure> <p>BNF's syntax itself may be represented with a BNF like the following: </p> <div class="mw-highlight mw-highlight-lang-bnf mw-content-ltr" dir="ltr"><pre><span></span> <span class="p">&lt;</span><span class="nc">syntax</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">rule</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">rule</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">syntax</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">rule</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> &quot;&lt;&quot; <span class="p">&lt;</span><span class="nc">rule-name</span><span class="p">&gt;</span> &quot;&gt;&quot; <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> &quot;<span class="o">::=</span>&quot; <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">expression</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">line-end</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> <span class="o">::=</span> &quot; &quot; <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> | &quot;&quot; <span class="p">&lt;</span><span class="nc">expression</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">list</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">list</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> &quot;|&quot; <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">expression</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">line-end</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">EOL</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">line-end</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">line-end</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">list</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">term</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">term</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">opt-whitespace</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">list</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">term</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">literal</span><span class="p">&gt;</span> | &quot;&lt;&quot; <span class="p">&lt;</span><span class="nc">rule-name</span><span class="p">&gt;</span> &quot;&gt;&quot; <span class="p">&lt;</span><span class="nc">literal</span><span class="p">&gt;</span> <span class="o">::=</span> &#39;&quot;&#39; <span class="p">&lt;</span><span class="nc">text1</span><span class="p">&gt;</span> &#39;&quot;&#39; | &quot;&#39;&quot; <span class="p">&lt;</span><span class="nc">text2</span><span class="p">&gt;</span> &quot;&#39;&quot; <span class="p">&lt;</span><span class="nc">text1</span><span class="p">&gt;</span> <span class="o">::=</span> &quot;&quot; | <span class="p">&lt;</span><span class="nc">character1</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">text1</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">text2</span><span class="p">&gt;</span> <span class="o">::=</span> &quot;&quot; | <span class="p">&lt;</span><span class="nc">character2</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">text2</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">character</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">letter</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">digit</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">symbol</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">letter</span><span class="p">&gt;</span> <span class="o">::=</span> &quot;A&quot; | &quot;B&quot; | &quot;C&quot; | &quot;D&quot; | &quot;E&quot; | &quot;F&quot; | &quot;G&quot; | &quot;H&quot; | &quot;I&quot; | &quot;J&quot; | &quot;K&quot; | &quot;L&quot; | &quot;M&quot; | &quot;N&quot; | &quot;O&quot; | &quot;P&quot; | &quot;Q&quot; | &quot;R&quot; | &quot;S&quot; | &quot;T&quot; | &quot;U&quot; | &quot;V&quot; | &quot;W&quot; | &quot;X&quot; | &quot;Y&quot; | &quot;Z&quot; | &quot;a&quot; | &quot;b&quot; | &quot;c&quot; | &quot;d&quot; | &quot;e&quot; | &quot;f&quot; | &quot;g&quot; | &quot;h&quot; | &quot;i&quot; | &quot;j&quot; | &quot;k&quot; | &quot;l&quot; | &quot;m&quot; | &quot;n&quot; | &quot;o&quot; | &quot;p&quot; | &quot;q&quot; | &quot;r&quot; | &quot;s&quot; | &quot;t&quot; | &quot;u&quot; | &quot;v&quot; | &quot;w&quot; | &quot;x&quot; | &quot;y&quot; | &quot;z&quot; <span class="p">&lt;</span><span class="nc">digit</span><span class="p">&gt;</span> <span class="o">::=</span> &quot;0&quot; | &quot;1&quot; | &quot;2&quot; | &quot;3&quot; | &quot;4&quot; | &quot;5&quot; | &quot;6&quot; | &quot;7&quot; | &quot;8&quot; | &quot;9&quot; <span class="p">&lt;</span><span class="nc">symbol</span><span class="p">&gt;</span> <span class="o">::=</span> &quot;|&quot; | &quot; &quot; | &quot;!&quot; | &quot;#&quot; | &quot;$&quot; | &quot;%&quot; | &quot;&amp;&quot; | &quot;(&quot; | &quot;)&quot; | &quot;*&quot; | &quot;+&quot; | &quot;,&quot; | &quot;-&quot; | &quot;.&quot; | &quot;/&quot; | &quot;:&quot; | &quot;;&quot; | &quot;&gt;&quot; | &quot;=&quot; | &quot;&lt;&quot; | &quot;?&quot; | &quot;@&quot; | &quot;[&quot; | &quot;\&quot; | &quot;]&quot; | &quot;^&quot; | &quot;_&quot; | &quot;`&quot; | &quot;{&quot; | &quot;}&quot; | &quot;~&quot; <span class="p">&lt;</span><span class="nc">character1</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">character</span><span class="p">&gt;</span> | &quot;&#39;&quot; <span class="p">&lt;</span><span class="nc">character2</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">character</span><span class="p">&gt;</span> | &#39;&quot;&#39; <span class="p">&lt;</span><span class="nc">rule-name</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">letter</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">rule-name</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">rule-char</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nc">rule-char</span><span class="p">&gt;</span> <span class="o">::=</span> <span class="p">&lt;</span><span class="nc">letter</span><span class="p">&gt;</span> | <span class="p">&lt;</span><span class="nc">digit</span><span class="p">&gt;</span> | &quot;-&quot; </pre></div> <p>Note that "" is the <a href="/wiki/Empty_string" title="Empty string">empty string</a>. </p><p>The original BNF did not use quotes as shown in <code>&lt;literal&gt;</code> rule. This assumes that no <a href="/wiki/Whitespace_(computer_science)" class="mw-redirect" title="Whitespace (computer science)">whitespace</a> is necessary for proper interpretation of the rule. </p><p><code>&lt;EOL&gt;</code> represents the appropriate <a href="/wiki/Newline" title="Newline">line-end</a> specifier (in <a href="/wiki/ASCII" title="ASCII">ASCII</a>, carriage-return, line-feed or both depending on the <a href="/wiki/Operating_system" title="Operating system">operating system</a>). <code>&lt;rule-name&gt;</code> and <code>&lt;text&gt;</code> are to be substituted with a declared rule's name/label or literal text, respectively. </p><p>In the U.S. postal address example above, the entire block-quote is a <code>&lt;syntax&gt;</code>. Each line or unbroken grouping of lines is a rule; for example one rule begins with <code>&lt;name-part&gt;&#160;::=</code>. The other part of that rule (aside from a line-end) is an expression, which consists of two lists separated by a vertical bar <code>|</code>. These two lists consists of some terms (three terms and two terms, respectively). Each term in this particular rule is a rule-name. </p> <div class="mw-heading mw-heading2"><h2 id="Variants">Variants</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=5" title="Edit section: Variants"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="EBNF">EBNF</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=6" title="Edit section: EBNF"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Extended_Backus%E2%80%93Naur_form" title="Extended Backus–Naur form">Extended Backus–Naur form</a></div> <p>There are many variants and extensions of BNF, generally either for the sake of simplicity and succinctness, or to adapt it to a specific application. One common feature of many variants is the use of <a href="/wiki/Regular_expression" title="Regular expression">regular expression</a> repetition operators such as <code>*</code> and <code>+</code>. The <a href="/wiki/Extended_Backus%E2%80%93Naur_form" title="Extended Backus–Naur form">extended Backus–Naur form</a> (EBNF) is a common one. </p><p>Another common extension is the use of square brackets around optional items. Although not present in the original ALGOL 60 report (instead introduced a few years later in <a href="/wiki/International_Business_Machines" class="mw-redirect" title="International Business Machines">IBM</a>'s <a href="/wiki/PL/I" title="PL/I">PL/I</a> definition), the notation is now universally recognised. </p> <div class="mw-heading mw-heading3"><h3 id="ABNF">ABNF</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=7" title="Edit section: ABNF"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/ABNF" class="mw-redirect" title="ABNF">ABNF</a></div> <p><a href="/wiki/Augmented_Backus%E2%80%93Naur_form" title="Augmented Backus–Naur form">Augmented Backus–Naur form</a> (ABNF) and Routing Backus–Naur form (RBNF)<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup> are extensions commonly used to describe <a href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">Internet Engineering Task Force</a> (IETF) <a href="/wiki/Protocol_(computing)" class="mw-redirect" title="Protocol (computing)">protocols</a>. </p><p><a href="/wiki/Parsing_expression_grammar" title="Parsing expression grammar">Parsing expression grammars</a> build on the BNF and <a href="/wiki/Regular_expression" title="Regular expression">regular expression</a> notations to form an alternative class of <a href="/wiki/Formal_grammar" title="Formal grammar">formal grammar</a>, which is essentially <a href="/wiki/Analytic_grammar" class="mw-redirect" title="Analytic grammar">analytic</a> rather than <a href="/wiki/Generative_grammar" title="Generative grammar">generative</a> in character. </p> <div class="mw-heading mw-heading3"><h3 id="Others">Others</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=8" title="Edit section: Others"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Many BNF specifications found online today are intended to be human-readable and are non-formal. These often include many of the following syntax rules and extensions: </p> <ul><li>Optional items enclosed in square brackets: <code>[&lt;item-x&gt;]</code>.</li> <li>Items existing 0 or more times are enclosed in curly brackets or suffixed with an asterisk (<code>*</code>) such as <code>&lt;word&gt;&#160;::= &lt;letter&gt; {&lt;letter&gt;}</code> or <code>&lt;word&gt;&#160;::= &lt;letter&gt; &lt;letter&gt;*</code> respectively.</li> <li>Items existing 1 or more times are suffixed with an addition (plus) symbol, <code>+</code>, such as <code>&lt;word&gt;&#160;::= &lt;letter&gt;+</code>.</li> <li>Terminals may appear in bold rather than italics, and non-terminals in plain text rather than angle brackets.</li> <li>Where items are grouped, they are enclosed in simple parentheses.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Software_using_BNF_or_variants">Software using BNF or variants</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=9" title="Edit section: Software using BNF or variants"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Software_that_accepts_BNF_(or_a_superset)_as_input"><span id="Software_that_accepts_BNF_.28or_a_superset.29_as_input"></span>Software that accepts BNF (or a superset) as input</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=10" title="Edit section: Software that accepts BNF (or a superset) as input"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/ANTLR" title="ANTLR">ANTLR</a>, a parser generator written in <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a></li> <li><a href="/wiki/Coco/R" title="Coco/R">Coco/R</a>, compiler generator accepting an attributed grammar in <a href="/wiki/EBNF" class="mw-redirect" title="EBNF">EBNF</a></li> <li><a href="/wiki/DMS_Software_Reengineering_Toolkit" title="DMS Software Reengineering Toolkit">DMS Software Reengineering Toolkit</a>, program analysis and transformation system for arbitrary languages</li> <li><a href="/wiki/GOLD_(parser)" title="GOLD (parser)">GOLD</a>, a BNF parser generator</li> <li>RPA BNF parser.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">&#91;</span>18<span class="cite-bracket">&#93;</span></a></sup> Online (PHP) demo parsing: JavaScript, XML</li> <li>XACT X4MR System,<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">&#91;</span>19<span class="cite-bracket">&#93;</span></a></sup> a rule-based expert system for programming language translation</li> <li><a href="/wiki/XPL" title="XPL">XPL</a> Analyzer, a tool which accepts simplified BNF for a language and produces a parser for that language in XPL; it may be integrated into the supplied SKELETON program, with which the language may be debugged<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">&#91;</span>20<span class="cite-bracket">&#93;</span></a></sup> (a <a href="/wiki/SHARE_(computing)" title="SHARE (computing)">SHARE</a> contributed program, which was preceded by <i>A Compiler Generator</i><sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">&#91;</span>21<span class="cite-bracket">&#93;</span></a></sup>)</li> <li>bnfparser<sup>2</sup>,<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">&#91;</span>22<span class="cite-bracket">&#93;</span></a></sup> a universal syntax verification utility</li> <li>bnf2xml,<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">&#91;</span>23<span class="cite-bracket">&#93;</span></a></sup> Markup input with XML tags using advanced BNF matching</li> <li><a href="/wiki/JavaCC" title="JavaCC">JavaCC</a>,<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">&#91;</span>24<span class="cite-bracket">&#93;</span></a></sup> Java Compiler Compiler tm (JavaCC tm) - The Java Parser Generator</li></ul> <div class="mw-heading mw-heading3"><h3 id="Similar_software">Similar software</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=11" title="Edit section: Similar software"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/GNU_bison" class="mw-redirect" title="GNU bison">GNU bison</a>, GNU version of yacc</li> <li><a href="/wiki/Yacc" title="Yacc">Yacc</a>, parser generator (most commonly used with the <a href="/wiki/Lex_(software)" title="Lex (software)">Lex</a> preprocessor)</li> <li>Racket's parser tools, lex and yacc-style parsing (Beautiful Racket edition)</li> <li><a href="/wiki/Qlik" title="Qlik">Qlik</a> Sense, a BI tool, uses a variant of BNF for scripting <sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">&#91;</span>25<span class="cite-bracket">&#93;</span></a></sup></li> <li>BNF Converter (BNFC<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">&#91;</span>26<span class="cite-bracket">&#93;</span></a></sup>), operating on a variant called "labeled Backus–Naur form" (LBNF). In this variant, each production for a given non-terminal is given a label, which can be used as a constructor of an <a href="/wiki/Algebraic_data_type" title="Algebraic data type">algebraic data type</a> representing that nonterminal. The converter is capable of producing types and parsers for <a href="/wiki/Abstract_syntax" title="Abstract syntax">abstract syntax</a> in several languages, including <a href="/wiki/Haskell_(programming_language)" class="mw-redirect" title="Haskell (programming language)">Haskell</a> and Java</li></ul> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=12" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Augmented_Backus%E2%80%93Naur_form" title="Augmented Backus–Naur form">Augmented Backus–Naur form</a> (ABNF)</li> <li><a href="/wiki/Compiler_Description_Language" title="Compiler Description Language">Compiler Description Language</a> (CDL)</li> <li><a href="/wiki/Definite_clause_grammar" title="Definite clause grammar">Definite clause grammar</a> – a more expressive alternative to BNF used in Prolog</li> <li><a href="/wiki/Extended_Backus%E2%80%93Naur_form" title="Extended Backus–Naur form">Extended Backus–Naur form</a> (EBNF)</li> <li><a href="/wiki/Meta-II" class="mw-redirect" title="Meta-II">Meta-II</a> – an early compiler writing tool and notation</li> <li><a href="/wiki/Syntax_diagram" title="Syntax diagram">Syntax diagram</a> – railroad diagram</li> <li><a href="/wiki/Translational_Backus%E2%80%93Naur_form" title="Translational Backus–Naur form">Translational Backus–Naur form</a> (TBNF)</li> <li><a href="/wiki/Van_Wijngaarden_grammar" title="Van Wijngaarden grammar">Van Wijngaarden grammar</a> – used in preference to BNF to define <a href="/wiki/Algol68" class="mw-redirect" title="Algol68">Algol68</a></li> <li><a href="/wiki/Wirth_syntax_notation" title="Wirth syntax notation">Wirth syntax notation</a> – an alternative to BNF from 1977</li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=13" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-janikow-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-janikow_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-janikow_1-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-janikow_1-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFJanikow" class="citation web cs1">Janikow, Cezary Z. <a rel="nofollow" class="external text" href="http://www.cs.umsl.edu/~janikow/cs4280/bnf.pdf">"What is BNF?"</a> <span class="cs1-format">(PDF)</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=What+is+BNF%3F&amp;rft.aulast=Janikow&amp;rft.aufirst=Cezary+Z.&amp;rft_id=http%3A%2F%2Fwww.cs.umsl.edu%2F~janikow%2Fcs4280%2Fbnf.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-class-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-class_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-class_2-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-class_2-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-class_2-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-class_2-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-class_2-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-class_2-6"><sup><i><b>g</b></i></sup></a></span> <span class="reference-text">The meaning of syntactic formula may be further explained by saying that words enclosed in the brackets <code>&lt; &gt;</code>, like <code>&lt;ab&gt;</code>, denote classes whose members are sequences of basic symbols. Class designations of this kind are found in any description of a language. For describing ordinary natural languages designation like word, verb, noun, are used. .<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup><sup class="reference nowrap"><span title="Location: 5, Note 1">&#58;&#8202;5,&#8202;Note 1&#8202;</span></sup></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1041539562">.mw-parser-output .citation{word-wrap:break-word}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}</style><span class="citation foldoc">This article is based on material taken from <a rel="nofollow" class="external text" href="https://foldoc.org/Backus-Naur+Form">Backus-Naur+Form</a> at the <i><a href="/wiki/Free_On-line_Dictionary_of_Computing" title="Free On-line Dictionary of Computing">Free On-line Dictionary of Computing</a></i> &#32;prior to 1 November 2008 and incorporated under the "relicensing" terms of the <a href="/wiki/GNU_Free_Documentation_License" title="GNU Free Documentation License">GFDL</a>, version 1.3 or later.</span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www-gap.dcs.st-and.ac.uk/~history/Biographies/Panini.html">"Panini biography"</a>. School of Mathematics and Statistics, University of St Andrews, Scotland<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-03-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Panini+biography&amp;rft.pub=School+of+Mathematics+and+Statistics%2C+University+of+St+Andrews%2C+Scotland&amp;rft_id=http%3A%2F%2Fwww-gap.dcs.st-and.ac.uk%2F~history%2FBiographies%2FPanini.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFIngerman1967" class="citation journal cs1">Ingerman, Peter Zilahy (March 1967). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F363162.363165">"<span class="cs1-kern-left"></span>"Pāṇini-Backus Form" Suggested"</a>. <i>Communications of the ACM</i>. <b>10</b> (3). Association for Computing Machinery: 137. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F363162.363165">10.1145/363162.363165</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:52817672">52817672</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Communications+of+the+ACM&amp;rft.atitle=%22P%C4%81%E1%B9%87ini-Backus+Form%22+Suggested&amp;rft.volume=10&amp;rft.issue=3&amp;rft.pages=137&amp;rft.date=1967-03&amp;rft_id=info%3Adoi%2F10.1145%2F363162.363165&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A52817672%23id-name%3DS2CID&amp;rft.aulast=Ingerman&amp;rft.aufirst=Peter+Zilahy&amp;rft_id=https%3A%2F%2Fdoi.org%2F10.1145%252F363162.363165&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span> Ingerman suggests that the Backus Normal Form be renamed to the <a href="/wiki/P%C4%81%E1%B9%87ini" title="Pāṇini">Pāṇini</a>-Backus Form, to give due credit to Pāṇini as the earliest independent inventor.</span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFChomsky1956" class="citation journal cs1">Chomsky, Noam (1956). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100919021754/http://chomsky.info/articles/195609--.pdf">"Three models for the description of language"</a> <span class="cs1-format">(PDF)</span>. <i>IRE Transactions on Information Theory</i>. <b>2</b> (3): <span class="nowrap">113–</span>24. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FTIT.1956.1056813">10.1109/TIT.1956.1056813</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:19519474">19519474</a>. Archived from <a rel="nofollow" class="external text" href="http://www.chomsky.info/articles/195609--.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2010-09-19.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=IRE+Transactions+on+Information+Theory&amp;rft.atitle=Three+models+for+the+description+of+language&amp;rft.volume=2&amp;rft.issue=3&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E113-%3C%2Fspan%3E24&amp;rft.date=1956&amp;rft_id=info%3Adoi%2F10.1109%2FTIT.1956.1056813&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A19519474%23id-name%3DS2CID&amp;rft.aulast=Chomsky&amp;rft.aufirst=Noam&amp;rft_id=http%3A%2F%2Fwww.chomsky.info%2Farticles%2F195609--.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-Chomsky1957-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-Chomsky1957_7-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFChomsky1957" class="citation book cs1">Chomsky, Noam (1957). <a href="/wiki/Syntactic_Structures" title="Syntactic Structures"><i>Syntactic Structures</i></a>. The Hague: Mouton.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Syntactic+Structures&amp;rft.place=The+Hague&amp;rft.pub=Mouton&amp;rft.date=1957&amp;rft.aulast=Chomsky&amp;rft.aufirst=Noam&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFNaur1961" class="citation web cs1">Naur, Peter (1961). <a rel="nofollow" class="external text" href="http://archive.computerhistory.org/resources/text/algol/ACM_Algol_bulletin/1064048/frontmatter.pdf">"A COURSE OF ALGO L 60 PROGRAMMING with special reference to the DASK ALGOL system"</a> <span class="cs1-format">(PDF)</span>. Copenhagen: Regnecentralen<span class="reference-accessdate">. Retrieved <span class="nowrap">26 March</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=A+COURSE+OF+ALGO+L+60+PROGRAMMING+with+special+reference+to+the+DASK+ALGOL+system&amp;rft.place=Copenhagen&amp;rft.pub=Regnecentralen&amp;rft.date=1961&amp;rft.aulast=Naur&amp;rft.aufirst=Peter&amp;rft_id=http%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2Falgol%2FACM_Algol_bulletin%2F1064048%2Ffrontmatter.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-Backus.1969-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-Backus.1969_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Backus.1969_9-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBackus1959" class="citation book cs1"><a href="/wiki/John_W._Backus" class="mw-redirect" title="John W. Backus">Backus, J. W.</a> (1959). <a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/ALGOL/paper/Backus-Syntax_and_Semantics_of_Proposed_IAL.pdf/view">"The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM Conference"</a>. <i>Proceedings of the International Conference on Information Processing</i>. UNESCO. pp.&#160;<span class="nowrap">125–</span>132.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=The+syntax+and+semantics+of+the+proposed+international+algebraic+language+of+the+Zurich+ACM-GAMM+Conference&amp;rft.btitle=Proceedings+of+the+International+Conference+on+Information+Processing&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E125-%3C%2Fspan%3E132&amp;rft.pub=UNESCO&amp;rft.date=1959&amp;rft.aulast=Backus&amp;rft.aufirst=J.+W.&amp;rft_id=http%3A%2F%2Fwww.softwarepreservation.org%2Fprojects%2FALGOL%2Fpaper%2FBackus-Syntax_and_Semantics_of_Proposed_IAL.pdf%2Fview&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFFarrell1995" class="citation web cs1">Farrell, James A. (August 1995). <a rel="nofollow" class="external text" href="http://www.cs.man.ac.uk/~pjj/farrell/comp2.html#EBNF">"Compiler Basics: Extended Backus Naur Form"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110605061825/http://www.cs.man.ac.uk/~pjj/farrell/comp2.html#EBNF">Archived</a> from the original on 5 June 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">May 11,</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Compiler+Basics%3A+Extended+Backus+Naur+Form&amp;rft.date=1995-08&amp;rft.aulast=Farrell&amp;rft.aufirst=James+A.&amp;rft_id=http%3A%2F%2Fwww.cs.man.ac.uk%2F~pjj%2Ffarrell%2Fcomp2.html%23EBNF&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFFulton,_III2007" class="citation web cs1">Fulton, III, Scott M. (20 March 2007). <a rel="nofollow" class="external text" href="http://betanews.com/2007/03/20/john-w-backus-1924-2007">"John W. Backus (1924 - 2007)"</a>. BetaNews. Inc<span class="reference-accessdate">. Retrieved <span class="nowrap">Jun 3,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=John+W.+Backus+%281924+-+2007%29&amp;rft.pub=BetaNews.+Inc.&amp;rft.date=2007-03-20&amp;rft.aulast=Fulton%2C+III&amp;rft.aufirst=Scott+M.&amp;rft_id=http%3A%2F%2Fbetanews.com%2F2007%2F03%2F20%2Fjohn-w-backus-1924-2007&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFJohn_Backus2006" class="citation report cs1">John Backus (Sep 2006). Grady Booch (ed.). <a rel="nofollow" class="external text" href="https://archive.computerhistory.org/resources/text/Oral_History/Backus_John/Backus_John_1.oral_history.2006.102657970.pdf">Oral History of John Backus</a> <span class="cs1-format">(PDF)</span> (Report). computer history museum.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=report&amp;rft.btitle=Oral+History+of+John+Backus&amp;rft.pub=computer+history+museum&amp;rft.date=2006-09&amp;rft.au=John+Backus&amp;rft_id=https%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2FOral_History%2FBackus_John%2FBackus_John_1.oral_history.2006.102657970.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span> Here: p.25</span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKnuth1964" class="citation journal cs1"><a href="/wiki/Donald_Knuth" title="Donald Knuth">Knuth, Donald E.</a> (1964). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F355588.365140">"Backus Normal Form vs. Backus Naur Form"</a>. <i>Communications of the ACM</i>. <b>7</b> (12): <span class="nowrap">735–</span>736. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F355588.365140">10.1145/355588.365140</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:47537431">47537431</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Communications+of+the+ACM&amp;rft.atitle=Backus+Normal+Form+vs.+Backus+Naur+Form&amp;rft.volume=7&amp;rft.issue=12&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E735-%3C%2Fspan%3E736&amp;rft.date=1964&amp;rft_id=info%3Adoi%2F10.1145%2F355588.365140&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A47537431%23id-name%3DS2CID&amp;rft.aulast=Knuth&amp;rft.aufirst=Donald+E.&amp;rft_id=https%3A%2F%2Fdoi.org%2F10.1145%252F355588.365140&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFIngerman1967" class="citation journal cs1">Ingerman, P. Z. (1967). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F363162.363165">"<span class="cs1-kern-left"></span>"Pāṇini Backus Form" suggested"</a>. <i>Communications of the ACM</i>. <b>10</b> (3): 137. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F363162.363165">10.1145/363162.363165</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:52817672">52817672</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Communications+of+the+ACM&amp;rft.atitle=%22P%C4%81%E1%B9%87ini+Backus+Form%22+suggested&amp;rft.volume=10&amp;rft.issue=3&amp;rft.pages=137&amp;rft.date=1967&amp;rft_id=info%3Adoi%2F10.1145%2F363162.363165&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A52817672%23id-name%3DS2CID&amp;rft.aulast=Ingerman&amp;rft.aufirst=P.+Z.&amp;rft_id=https%3A%2F%2Fdoi.org%2F10.1145%252F363162.363165&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-ALGOL60RPT-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-ALGOL60RPT_15-0">^</a></b></span> <span class="reference-text">Revised ALGOL 60 report section. 1.1.<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.masswerk.at/algol60/report.htm">"ALGOL 60"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">April 18,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=ALGOL+60&amp;rft_id=http%3A%2F%2Fwww.masswerk.at%2Falgol60%2Freport.htm&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSaul_Rosen1967" class="citation book cs1"><a href="/wiki/Saul_Rosen" title="Saul Rosen">Saul Rosen</a> (Jan 1967). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/programmingsyste0000unse/mode/1up"><i>Programming Systems and Languages</i></a></span>. McGraw Hill Computer Science Series. New York/NY: McGraw Hill. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0070537088" title="Special:BookSources/978-0070537088"><bdi>978-0070537088</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Programming+Systems+and+Languages&amp;rft.place=New+York%2FNY&amp;rft.series=McGraw+Hill+Computer+Science+Series&amp;rft.pub=McGraw+Hill&amp;rft.date=1967-01&amp;rft.isbn=978-0070537088&amp;rft.au=Saul+Rosen&amp;rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fprogrammingsyste0000unse%2Fmode%2F1up&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://tools.ietf.org/html/rfc5511">RBNF</a>.</span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"Online demo", <a rel="nofollow" class="external text" href="https://web.archive.org/web/20121102161746/http://www.rpatk.net/web/en/onlinedemo.php"><i>RPatk</i></a>, archived from <a rel="nofollow" class="external text" href="http://www.rpatk.net/web/en/onlinedemo.php">the original</a> on 2012-11-02<span class="reference-accessdate">, retrieved <span class="nowrap">2011-07-03</span></span></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=Online+demo&amp;rft.btitle=RPatk&amp;rft_id=http%3A%2F%2Fwww.rpatk.net%2Fweb%2Fen%2Fonlinedemo.php&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"Tools", <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130129075050/http://www.actworld.com/tools/"><i>Act world</i></a>, archived from <a rel="nofollow" class="external text" href="http://www.actworld.com/tools/">the original</a> on 2013-01-29</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=Tools&amp;rft.btitle=Act+world&amp;rft_id=http%3A%2F%2Fwww.actworld.com%2Ftools%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text">If the target processor is System/360, or related, even up to z/System, and the target language is similar to PL/I (or, indeed, XPL), then the required code "emitters" may be adapted from XPL's "emitters" for System/360.</span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcKeemanHorningWortman1970" class="citation book cs1">McKeeman, W. M.; Horning, J.J.; Wortman, D. B. (1970). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/compilergenerato00mcke"><i>A Compiler Generator</i></a></span>. Prentice-Hall. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0-13-155077-3" title="Special:BookSources/978-0-13-155077-3"><bdi>978-0-13-155077-3</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=A+Compiler+Generator&amp;rft.pub=Prentice-Hall&amp;rft.date=1970&amp;rft.isbn=978-0-13-155077-3&amp;rft.aulast=McKeeman&amp;rft.aufirst=W.+M.&amp;rft.au=Horning%2C+J.J.&amp;rft.au=Wortman%2C+D.+B.&amp;rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fcompilergenerato00mcke&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"BNF parser²", <a rel="nofollow" class="external text" href="http://bnfparser2.sourceforge.net/"><i>Source forge</i></a> (project)</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=BNF+parser%C2%B2&amp;rft.btitle=Source+forge&amp;rft_id=http%3A%2F%2Fbnfparser2.sourceforge.net%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://sourceforge.net/projects/bnf2xml/">bnf2xml</a></span> </li> <li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130608172614/https://javacc.java.net/">"JavaCC"</a>. Archived from <a rel="nofollow" class="external text" href="https://javacc.java.net/">the original</a> on 2013-06-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-09-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=JavaCC&amp;rft_id=https%3A%2F%2Fjavacc.java.net%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="qlikscriptsyntax" class="citation web cs1"><a rel="nofollow" class="external text" href="https://help.qlik.com/en-US/sense/May2021/Subsystems/Hub/Content/Sense_Hub/Scripting/script-syntax.htm">"Script Syntax - Qlik Sense on Windows"</a>. <i>Qlik.com</i>. QlikTech International AB<span class="reference-accessdate">. Retrieved <span class="nowrap">10 January</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Qlik.com&amp;rft.atitle=Script+Syntax+-+Qlik+Sense+on+Windows&amp;rft_id=https%3A%2F%2Fhelp.qlik.com%2Fen-US%2Fsense%2FMay2021%2FSubsystems%2FHub%2FContent%2FSense_Hub%2FScripting%2Fscript-syntax.htm&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> <li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"BNFC", <a rel="nofollow" class="external text" href="http://bnfc.digitalgrammars.com/"><i>Language technology</i></a>, <a href="/wiki/Sweden" title="Sweden">SE</a>: Chalmers</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=BNFC&amp;rft.btitle=Language+technology&amp;rft.place=SE&amp;rft.pub=Chalmers&amp;rft_id=http%3A%2F%2Fbnfc.digitalgrammars.com%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span></span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=14" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGarshol" class="citation cs2">Garshol, Lars Marius, <a rel="nofollow" class="external text" href="http://www.garshol.priv.no/download/text/bnf.html"><i>BNF and EBNF: What are they and how do they work?</i></a>, <a href="/wiki/Norway" title="Norway">NO</a>: Priv</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=BNF+and+EBNF%3A+What+are+they+and+how+do+they+work%3F&amp;rft.place=NO&amp;rft.pub=Priv&amp;rft.aulast=Garshol&amp;rft.aufirst=Lars+Marius&amp;rft_id=http%3A%2F%2Fwww.garshol.priv.no%2Fdownload%2Ftext%2Fbnf.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span>.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/RFC_(identifier)" class="mw-redirect" title="RFC (identifier)">RFC</a>&#160;<a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc5234">5234</a> &#8212; Augmented BNF for Syntax Specifications: ABNF.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/RFC_(identifier)" class="mw-redirect" title="RFC (identifier)">RFC</a>&#160;<a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc5511">5511</a> &#8212; Routing BNF: A Syntax Used in Various Protocol Specifications.</li> <li>ISO/IEC 14977:1996(E) <i>Information technology &#8211; Syntactic metalanguage &#8211; Extended BNF</i>, available from <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"Publicly available", <a rel="nofollow" class="external text" href="http://standards.iso.org/ittf/PubliclyAvailableStandards/"><i>Standards</i></a>, ISO</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=Publicly+available&amp;rft.btitle=Standards&amp;rft.pub=ISO&amp;rft_id=http%3A%2F%2Fstandards.iso.org%2Fittf%2FPubliclyAvailableStandards%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span> or from <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKuhn" class="citation cs2">Kuhn, Marcus, <a rel="nofollow" class="external text" href="http://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf"><i>Iso 14977</i></a> <span class="cs1-format">(PDF)</span>, <a href="/wiki/United_Kingdom" title="United Kingdom">UK</a>: CAM</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Iso+14977&amp;rft.place=UK&amp;rft.pub=CAM&amp;rft.aulast=Kuhn&amp;rft.aufirst=Marcus&amp;rft_id=http%3A%2F%2Fwww.cl.cam.ac.uk%2F~mgk25%2Fiso-14977.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span> <small>(the latter is missing the cover page, but is otherwise much cleaner)</small></li></ul> <div class="mw-heading mw-heading3"><h3 id="Language_grammars">Language grammars</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Backus%E2%80%93Naur_form&amp;action=edit&amp;section=15" title="Edit section: Language grammars"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBernhard" class="citation cs2">Bernhard, <a rel="nofollow" class="external text" href="http://blackbox.userweb.mwn.de/Algol-BNF.html"><i>Algol-60 BNF</i></a>, <a href="/wiki/Germany" title="Germany">DE</a>: LRZ München</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Algol-60+BNF&amp;rft.place=DE&amp;rft.pub=LRZ+M%C3%BCnchen&amp;rft.au=Bernhard&amp;rft_id=http%3A%2F%2Fblackbox.userweb.mwn.de%2FAlgol-BNF.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span>, the original BNF.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"BNF grammars for SQL-92, SQL-99 and SQL-2003", <a rel="nofollow" class="external text" href="http://savage.net.au/SQL/"><i>Savage</i></a>, <a href="/wiki/Australia" title="Australia">AU</a>: Net</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=BNF+grammars+for+SQL-92%2C+SQL-99+and+SQL-2003&amp;rft.btitle=Savage&amp;rft.place=AU&amp;rft.pub=Net&amp;rft_id=http%3A%2F%2Fsavage.net.au%2FSQL%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span>, freely available BNF grammars for <a href="/wiki/SQL" title="SQL">SQL</a>.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"BNF Web Club", <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070124000335/http://cui.unige.ch/db-research/Enseignement/analyseinfo/BNFweb.html"><i>DB research</i></a>, <a href="/wiki/Switzerland" title="Switzerland">CH</a>: Unige, archived from <a rel="nofollow" class="external text" href="http://cui.unige.ch/db-research/Enseignement/analyseinfo/BNFweb.html">the original</a> on 2007-01-24<span class="reference-accessdate">, retrieved <span class="nowrap">2007-01-25</span></span></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=BNF+Web+Club&amp;rft.btitle=DB+research&amp;rft.place=CH&amp;rft.pub=Unige&amp;rft_id=http%3A%2F%2Fcui.unige.ch%2Fdb-research%2FEnseignement%2Fanalyseinfo%2FBNFweb.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span>, freely available BNF grammars for SQL, <a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada</a>, <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a>.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"Free Programming Language Grammars for Compiler Construction", <a rel="nofollow" class="external text" href="http://www.thefreecountry.com/sourcecode/grammars.shtml"><i>Source code</i></a>, The free country</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=Free+Programming+Language+Grammars+for+Compiler+Construction&amp;rft.btitle=Source+code&amp;rft.pub=The+free+country&amp;rft_id=http%3A%2F%2Fwww.thefreecountry.com%2Fsourcecode%2Fgrammars.shtml&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span>, freely available BNF/<a href="/wiki/Extended_Backus%E2%80%93Naur_form" title="Extended Backus–Naur form">EBNF</a> grammars for C/C++, <a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>, <a href="/wiki/COBOL" title="COBOL">COBOL</a>, <a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada 95</a>, <a href="/wiki/PL/I" title="PL/I">PL/I</a>.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2">"BNF files related to the STEP standard", <a rel="nofollow" class="external text" href="https://archive.today/20121225083955/http://exp-engine.svn.sourceforge.net/viewvc/exp-engine/engine/trunk/docs/"><i>Exp engine</i></a> (<a href="/wiki/Apache_Subversion" title="Apache Subversion">SVN</a>), Source forge, archived from <a rel="nofollow" class="external text" href="http://exp-engine.svn.sourceforge.net/viewvc/exp-engine/engine/trunk/docs/">the original</a> on 2012-12-25</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=BNF+files+related+to+the+STEP+standard&amp;rft.btitle=Exp+engine&amp;rft.pub=Source+forge&amp;rft_id=http%3A%2F%2Fexp-engine.svn.sourceforge.net%2Fviewvc%2Fexp-engine%2Fengine%2Ftrunk%2Fdocs%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ABackus%E2%80%93Naur+form" class="Z3988"></span>. Includes <a href="/wiki/List_of_STEP_(ISO_10303)_parts" title="List of STEP (ISO 10303) parts">parts 11, 14, and 21</a> of the <a href="/wiki/ISO_10303" title="ISO 10303">ISO 10303</a> (STEP) standard.</li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Metasyntax_notations24" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Metasyntax_notations" title="Template:Metasyntax notations"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Metasyntax_notations" title="Template talk:Metasyntax notations"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Metasyntax_notations" title="Special:EditPage/Template:Metasyntax notations"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Metasyntax_notations24" style="font-size:114%;margin:0 4em"><a href="/wiki/Metasyntax" title="Metasyntax">Metasyntax</a> notations</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Augmented_Backus%E2%80%93Naur_form" title="Augmented Backus–Naur form">ABNF</a></li> <li><a class="mw-selflink selflink">Backus–Naur form</a></li> <li><a href="/wiki/Definite_clause_grammar" title="Definite clause grammar">Definite clause grammar</a></li> <li><a href="/wiki/Extended_Backus%E2%80%93Naur_form" title="Extended Backus–Naur form">EBNF</a></li> <li><a href="/wiki/JSGF" title="JSGF">JSGF</a></li> <li><a href="/wiki/Syntax_Definition_Formalism" title="Syntax Definition Formalism">Syntax Definition Formalism</a></li> <li><a href="/wiki/Translational_Backus%E2%80%93Naur_form" title="Translational Backus–Naur form">TBNF</a></li> <li><a href="/wiki/OMeta" title="OMeta">OMeta</a></li> <li><a href="/wiki/Wirth_syntax_notation" title="Wirth syntax notation">Wirth syntax notation</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐56d8db5f6f‐rd22c Cached time: 20250213042157 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.757 seconds Real time usage: 0.925 seconds Preprocessor visited node count: 3678/1000000 Post‐expand include size: 103881/2097152 bytes Template argument size: 15743/2097152 bytes Highest expansion depth: 21/100 Expensive parser function count: 16/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 130849/5000000 bytes Lua time usage: 0.465/10.000 seconds Lua memory usage: 8279600/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 828.915 1 -total 33.38% 276.695 1 Template:Reflist 16.96% 140.605 8 Template:Cite_web 14.25% 118.153 1 Template:Multiple_issues 11.43% 94.764 1 Template:Short_description 9.92% 82.211 1 Template:Metasyntax 8.86% 73.417 3 Template:Ambox 8.86% 73.404 1 Template:Navbox 7.31% 60.572 12 Template:Citation 7.28% 60.374 2 Template:Pagetype --> <!-- Saved in parser cache with key enwiki:pcache:62247:|#|:idhash:canonical and timestamp 20250213042157 and revision id 1275460566. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&amp;type=1x1&amp;usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Backus–Naur_form&amp;oldid=1275460566">https://en.wikipedia.org/w/index.php?title=Backus–Naur_form&amp;oldid=1275460566</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Formal_languages" title="Category:Formal languages">Formal languages</a></li><li><a href="/wiki/Category:Compiler_construction" title="Category:Compiler construction">Compiler construction</a></li><li><a href="/wiki/Category:Metalanguages" title="Category:Metalanguages">Metalanguages</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Articles_needing_cleanup_from_December_2023" title="Category:Articles needing cleanup from December 2023">Articles needing cleanup from December 2023</a></li><li><a href="/wiki/Category:All_pages_needing_cleanup" title="Category:All pages needing cleanup">All pages needing cleanup</a></li><li><a href="/wiki/Category:Articles_containing_how-to_sections" title="Category:Articles containing how-to sections">Articles containing how-to sections</a></li><li><a href="/wiki/Category:Wikipedia_articles_that_are_too_technical_from_December_2023" title="Category:Wikipedia articles that are too technical from December 2023">Wikipedia articles that are too technical from December 2023</a></li><li><a href="/wiki/Category:All_articles_that_are_too_technical" title="Category:All articles that are too technical">All articles that are too technical</a></li><li><a href="/wiki/Category:Articles_needing_additional_references_from_December_2023" title="Category:Articles needing additional references from December 2023">Articles needing additional references from December 2023</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li><li><a href="/wiki/Category:Articles_with_multiple_maintenance_issues" title="Category:Articles with multiple maintenance issues">Articles with multiple maintenance issues</a></li><li><a href="/wiki/Category:Wikipedia_articles_needing_clarification_from_May_2015" title="Category:Wikipedia articles needing clarification from May 2015">Wikipedia articles needing clarification from May 2015</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_March_2020" title="Category:Articles with unsourced statements from March 2020">Articles with unsourced statements from March 2020</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 13 February 2025, at 04:21<span class="anonymous-show">&#160;(UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Backus%E2%80%93Naur_form&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" lang="en" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Backus–Naur form</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>37 languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-56d8db5f6f-tfm7h","wgBackendResponseTime":121,"wgPageParseReport":{"limitreport":{"cputime":"0.757","walltime":"0.925","ppvisitednodes":{"value":3678,"limit":1000000},"postexpandincludesize":{"value":103881,"limit":2097152},"templateargumentsize":{"value":15743,"limit":2097152},"expansiondepth":{"value":21,"limit":100},"expensivefunctioncount":{"value":16,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":130849,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 828.915 1 -total"," 33.38% 276.695 1 Template:Reflist"," 16.96% 140.605 8 Template:Cite_web"," 14.25% 118.153 1 Template:Multiple_issues"," 11.43% 94.764 1 Template:Short_description"," 9.92% 82.211 1 Template:Metasyntax"," 8.86% 73.417 3 Template:Ambox"," 8.86% 73.404 1 Template:Navbox"," 7.31% 60.572 12 Template:Citation"," 7.28% 60.374 2 Template:Pagetype"]},"scribunto":{"limitreport-timeusage":{"value":"0.465","limit":"10.000"},"limitreport-memusage":{"value":8279600,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-56d8db5f6f-rd22c","timestamp":"20250213042157","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Backus\u2013Naur form","url":"https:\/\/en.wikipedia.org\/wiki\/Backus%E2%80%93Naur_form","sameAs":"http:\/\/www.wikidata.org\/entity\/Q211577","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q211577","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2002-07-15T17:41:29Z","dateModified":"2025-02-13T04:21:55Z","headline":"one of the two main notation techniques for context-free grammars in computer science"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10