Knowledge

Backus–Naur form

Source 📝

1931:"A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" 1353:. 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: 1169:, 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. 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. 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 describes BNF as a metalanguage for talking about ALGOL. An example of its use as a metalanguage would be in defining an arithmetic expression: 1957:"|" | " " | "!" | "#" | "$ " | "%" | "&" | "(" | ")" | "*" | "+" | "," | "-" | "." | "/" | ":" | ";" | ">" | "=" | "<" | "?" | "@" | "" | "^" | "_" | "`" | "{" | "}" | "~" 1444: 171: 32: 116: 73: 471:
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
1423:
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
1024:
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 <> brackets.
1399:
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
396:
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. These so-called "derivation rules" are
1019:
Sequences of characters enclosed in the brackets <> represent metalinguistic variables whose values are sequences of symbols. The marks "::=" and "|" (the latter with the meaning of "or") are metalinguistic connectives. Any mark in a formula, which is not a variable or a connective,
1329:
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. See
1120:
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
1221:
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. For example, above
1410:
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.
1125:
as non-terminals. Chomsky's terminology was not originally used in describing BNF. Naur later described them as classes in ALGOL course materials. In the ALGOL 60 report they were called metalinguistic variables. Anything other than the metasymbols
1089:
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.
2521:, 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. . 365:. 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 2988:
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
2327:
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 (a
2383:
BNF Converter (BNFC), 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
873:
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,
2152:
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
846:
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.
1403:
The origin of BNF is not as important as its impact on programming language development. During the period immediately following the publication of the ALGOL 60 report BNF was the basis of many
1345:
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
2171:
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
2234:
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:
1944:"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" 134: 3314: 3248: 2722: 3362: 3081: 2133:. These two lists consists of some terms (three terms and two terms, respectively). Each term in this particular rule is a rule-name. 925:, combined linguistics and mathematics by taking what is essentially Thue's formalism as the basis for the description of the syntax of 235: 1241:, the BNF recursive repeat construct is replaced by a sequence operator and target language symbols defined using quoted strings. The 2690: 207: 380:
Over time, many extensions and variants of the original Backus–Naur notation have been created; some are exactly defined, including
2745: 2129:. The other part of that rule (aside from a line-end) is an expression, which consists of two lists separated by a vertical bar 214: 3012: 862:, an ancient Indian Sanskrit grammarian and a revered scholar in Hinduism who lived sometime between the 6th and 4th century 188: 45: 2537: 453: 221: 1166: 2942: 3413: 3355: 2913: 2624: 2442: 2306: 83: 272: 254: 203: 152: 59: 1424:
and labels in an assembly language. Rules in META II are equivalent to a class definitions in BNF. The Unix utility
1114: 448:
consists of one or more sequences of either terminal or nonterminal symbols where each sequence is separated by a
2197: 2172: 1020:
denotes itself. Juxtaposition of marks or variables in a formula signifies juxtaposition of the sequence denoted.
3449: 3383: 3330: 2542: 2406: 2393: 2193: 957:
As proposed by Backus, the formula defined "classes" whose names are enclosed in angle brackets. For example,
385: 338: 192: 3398: 3348: 3324: 3294: 3290: 2723:"The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM Conference" 2424: 2412: 2270:
Terminals may appear in bold rather than italics, and non-terminals in plain text rather than angle brackets.
2165: 2147: 2089: 842:
An opt-apt-num consists of a prefix "Apt" followed by an apartment number, or an empty string (i.e. nothing).
381: 2969: 1029:
For the purpose of including text among the symbols of a program the following "comment" conventions hold:
989: 800: 3408: 3274: 2292: 2513:
The meaning of syntactic formula may be further explained by saying that words enclosed in the brackets
947:
of "metalinguistic formulas" to describe the syntax of the new programming language IAL, known today as
3302: 3270: 3258: 2207: 20: 3056: 228: 3444: 829: 51: 2556: 443: 130: 90: 3393: 2448: 2418: 181: 2902: 954:
BNF is a notation for Chomsky's context-free grammars. Backus was familiar with Chomsky's work.
817:
A street address consists of a house number, followed by a street name, followed by an optional
3454: 1400:
natural languages. Translations of the ALGOL reports were available in many natural languages.
898: 887: 374: 1025:
The following ALGOL 60 report section 2.3 comments specification, exemplifies how this works:
3423: 2457: 3174: 2244:
Items existing 0 or more times are enclosed in curly brackets or suffixed with an asterisk (
2673: 2388:
representing that nonterminal. The converter is capable of producing types and parsers for
2201: 930: 803:
in BNFs, covering the case of people who use multiple first and middle names and initials).
362: 342: 3282: 8: 2768: 2385: 1428:
is based on BNF with code production similar to META II. yacc is most commonly used as a
993: 870:
word structure is equivalent in power to that of Backus and has many similar properties.
481: 1146:
is used to separate alternative definitions and is interpreted as "or". The metasymbols
2857: 2816: 2741: 2647: 2600: 2223: 2211: 2153: 2125:. Each line or unbroken grouping of lines is a rule; for example one rule begins with 2118:
are to be substituted with a declared rule's name/label or literal text, respectively.
918: 879: 3320: 3008: 3001: 2909: 2329: 1404: 3133: 2861: 2820: 2651: 2604: 2541: prior to 1 November 2008 and incorporated under the "relicensing" terms of the 2196:(ABNF) and Routing Backus–Naur form (RBNF) are extensions commonly used to describe 440:
means that the symbol on the left must be replaced with the expression on the right.
3157: 3147: 2847: 2806: 2691:"A COURSE OF ALGO L 60 PROGRAMMING with special reference to the DASK ALGOL system" 2639: 2590: 2219: 2107: 1429: 926: 894: 296: 286: 2484: 2389: 2321:
XACT X4MR System, a rule-based expert system for programming language translation
1117: 467:
Apply derivation rules to this start symbol and the ensuing sequences of symbols.
370: 366: 346: 3212: 3161: 3151: 2655: 2613:-Backus Form, to give due credit to Pāṇini as the earliest independent inventor. 3193: 3184: 2718: 2436: 2368: 2215: 1448: 836: 799:, or a personal part followed by a name part (this rule illustrates the use of 472:
the symbols from our sequence and still have a syntactically correct sequence.
460:
All syntactically correct sequences must be generated in the following manner:
3438: 2948: 2643: 2312: 883: 863: 792: 2876: 2610: 2374:
Racket's parser tools, lex and yacc-style parsing (Beautiful Racket edition)
2259:
Items existing 1 or more times are suffixed with an addition (plus) symbol,
1005: 929:. He also introduced a clear distinction between generative rules (those of 859: 3044: 2790: 2078: 1339: 1151: 1094:
Naur changed two of Backus's symbols to commonly available characters. The
981: 944: 914: 855: 449: 3169:
Information technology – Syntactic metalanguage – Extended BNF
2852: 2835: 2811: 2794: 2595: 2578: 2559:. School of Mathematics and Statistics, University of St Andrews, Scotland 3254: 936: 910: 875: 796: 777: 430: 350: 1435:
BNF today is one of the oldest computer-related languages still in use.
3371: 3340: 2897: 1162: 1155: 973: 807: 358: 354: 3164:— Routing BNF: A Syntax Used in Various Protocol Specifications. 2532: 2121:
In the U.S. postal address example above, the entire block-quote is a
1454:
BNF's syntax itself may be represented with a BNF like the following:
3334: 3234: 3199:(the latter is missing the cover page, but is otherwise much cleaner) 3029: 2928: 2727:
Proceedings of the International Conference on Information Processing
2358: 2282: 1443: 1335: 906: 902: 886:
started attempts to formalize the description of language, including
818: 788: 456:, the whole being a possible substitution for the symbol on the left. 2309:, program analysis and transformation system for arbitrary languages 170: 3108: 2348:, Java Compiler Compiler tm (JavaCC tm) - The Java Parser Generator 969: 948: 867: 835:
An opt-suffix-part consists of a suffix, such as "Sr.", "Jr." or a
781: 464:
Initialize the sequence so that it just contains one start symbol.
3218: 2975: 2908:. McGraw Hill Computer Science Series. New York/NY: McGraw Hill. 2452: 2430: 2273:
Where items are grouped, they are enclosed in simple parentheses.
2099: 1331: 1238: 811: 3281:"Free Programming Language Grammars for Compiler Construction", 2609:
Ingerman suggests that the Backus Normal Form be renamed to the
3139: 3114: 2345: 2342:
bnf2xml, Markup input with XML tags using advanced BNF matching
2297: 1000:
was also once suggested in view of the fact that the expansion
423: 325: 787:
A name-part consists of either: a personal-part followed by a
3418: 3298: 2288: 2103: 1150:
are delimiters enclosing a class name. BNF is described as a
965: 951:(1959). His notation was first used in the ALGOL 60 report. 3228: 3403: 3306: 3060: 2377: 2364: 2301: 2188: 2176: 1425: 1078:<any sequence not containing 'end' or ';' or 'else'> 825: 434:
variable that is always enclosed between the pair <>.
311: 2318:
RPA BNF parser. Online (PHP) demo parsing: JavaScript, XML
1138:
are symbols of the language being defined. The metasymbol
3240: 2324: 2179:
definition), the notation is now universally recognised.
1011:
BNF is described by Peter Naur in the ALGOL 60 report as
961:. Each of these names denotes a class of basic symbols. 940: 922: 305: 2300:, compiler generator accepting an attributed grammar in 1008:
had independently developed a similar notation earlier.
776:
A postal address consists of a name-part, followed by a
2999:
McKeeman, W. M.; Horning, J.J.; Wortman, D. B. (1970).
854:
The idea of describing the structure of language using
3154:— Augmented BNF for Syntax Specifications: ABNF. 2998: 2380:
Sense, a BI tool, uses a variant of BNF for scripting
2106:, carriage-return, line-feed or both depending on the 901:
were introduced and studied by mathematicians such as
2421:– a more expressive alternative to BNF used in Prolog 2250:<word> ::= <letter> {<letter>} 480:
As an example, consider this possible BNF for a U.S.
322: 314: 308: 299: 2254:<word> ::= <letter> <letter>* 2092:
is necessary for proper interpretation of the rule.
832:, followed by a ZIP-code followed by an end-of-line. 302: 1165:became involved in the activities of the fledgling 319: 195:. Unsourced material may be challenged and removed. 125:
may be too technical for most readers to understand
3000: 2901: 2339:bnfparser, a universal syntax verification utility 2283:Software that accepts BNF (or a superset) as input 1415:became symbol identifiers, dropping the enclosing 992:in the conventional sense", unlike, for instance, 3135:BNF and EBNF: What are they and how do they work? 2277: 3436: 3227:"BNF grammars for SQL-92, SQL-99 and SQL-2003", 2367:, parser generator (most commonly used with the 2084:The original BNF did not use quotes as shown in 2589:(3). Association for Computing Machinery: 137. 1237:In some later metalanguages, such as Schorre's 2625:"Three models for the description of language" 3356: 2713: 2711: 2531:This article is based on material taken from 2433:– an early compiler writing tool and notation 1142:is to be interpreted as "is defined as". The 2742:"Compiler Basics: Extended Backus Naur Form" 2238:Optional items enclosed in square brackets: 2766: 2332:contributed program, which was preceded by 858:can be traced back to at least the work of 60:Learn how and when to remove these messages 16:Formalism to describe programming languages 3363: 3349: 3313:"BNF files related to the STEP standard", 2896: 2868: 2708: 2665: 2214:notations to form an alternative class of 1256:for mathematical grouping were added. The 1154:for talking about ALGOL by Peter Naur and 828:-name, followed by a comma, followed by a 3269:, freely available BNF grammars for SQL, 2851: 2810: 2795:"Backus Normal Form vs. Backus Naur Form" 2594: 2478: 2476: 2474: 1065:<any sequence not containing ';'>; 1049:<any sequence not containing ';'>; 984:argued that BNF should rather be read as 273:Learn how and when to remove this message 255:Learn how and when to remove this message 153:Learn how and when to remove this message 137:, without removing the technical details. 3370: 2833: 2576: 1442: 3082:"Script Syntax - Qlik Sense on Windows" 2767:Fulton, III, Scott M. (20 March 2007). 2739: 2671: 2622: 2509: 2507: 2505: 2503: 2501: 2499: 2497: 3437: 2717: 2632:IRE Transactions on Information Theory 2471: 2451:– used in preference to BNF to define 917:, teaching linguistics to students of 821:specifier, followed by an end-of-line. 3344: 3080: 2874:Revised ALGOL 60 report section. 1.1. 2789: 2577:Ingerman, Peter Zilahy (March 1967). 2265:<word> ::= <letter>+ 1805:'"' | "'" 939:, a programming language designer at 806:A personal-part consists of either a 337:) is a notation used to describe the 135:make it understandable to non-experts 3239:, freely available BNF grammars for 3210: 3204: 2688: 2538:Free On-line Dictionary of Computing 2494: 839:, or an empty string (i.e. nothing). 735:"Sr." | "Jr." | 193:adding citations to reliable sources 164: 109: 66: 25: 3131: 2482: 2352: 1438: 1432:, and its roots are obviously BNF. 1249:brackets were removed. Parentheses 1167:Association for Computing Machinery 933:) and transformation rules (1956). 13: 2307:DMS Software Reengineering Toolkit 972:. In the committee's 1963 report, 795:(Jr. Sr., or dynastic number) and 772:This translates into English as: 14: 3466: 3125: 2904:Programming Systems and Languages 2740:Farrell, James A. (August 1995). 2460:– an alternative to BNF from 1977 93:and remove advice or instruction. 41:This article has multiple issues. 3182: 2836:""Pāṇini Backus Form" suggested" 2748:from the original on 5 June 2011 2579:""Pāṇini-Backus Form" Suggested" 2392:in several languages, including 2291:, a parser generator written in 1260:rule would appear in META II as 1106:symbol was originally the word " 295: 169: 114: 71: 30: 3323:), Source forge, archived from 3100: 3074: 3049: 3038: 3021: 2992: 2982: 2961: 2934: 2922: 2890: 2827: 2783: 2760: 2733: 2198:Internet Engineering Task Force 1035:The sequence of basic symbols: 180:needs additional citations for 49:or discuss these issues on the 2769:"John W. Backus (1924 - 2007)" 2682: 2616: 2570: 2549: 2524: 2443:Translational Backus–Naur form 2278:Software using BNF or variants 1134:, and class names enclosed in 1004:may not be accurate, and that 1: 2464: 2413:Compiler Description Language 2156:repetition operators such as 2696:. Copenhagen: Regnecentralen 357:. BNF can be described as a 7: 3409:Syntax Definition Formalism 3088:. QlikTech International AB 2729:. UNESCO. pp. 125–132. 2400: 2208:Parsing expression grammars 2136: 2098:represents the appropriate 2088:rule. This assumes that no 866:. His notation to describe 391: 10: 3471: 2407:Augmented Backus–Naur form 2194:Augmented Backus–Naur form 2186: 2145: 2127:<name-part> ::= 1351:<addop> <term> 1232:<addop> <term> 1230:followed by any number of 849: 475: 386:augmented Backus–Naur form 18: 3379: 2840:Communications of the ACM 2799:Communications of the ACM 2583:Communications of the ACM 2425:Extended Backus–Naur form 2229: 2166:extended Backus–Naur form 2148:Extended Backus–Naur form 976:called Backus's notation 824:A zip-part consists of a 437: 382:extended Backus–Naur form 2834:Ingerman, P. Z. (1967). 2644:10.1109/TIT.1956.1056813 2315:, a BNF parser generator 2168:(EBNF) is a common one. 1456: 1356: 1263: 1172: 1110:" (with a bar over it). 1098:symbol was originally a 791:followed by an optional 486: 399: 19:Not to be confused with 3394:Definite clause grammar 3289:, freely available BNF/ 3257:: Unige, archived from 2545:, version 1.3 or later. 2449:Van Wijngaarden grammar 2419:Definite clause grammar 2218:, which is essentially 2182: 2141: 1349:followed by a sequence 1113:BNF is very similar to 964:Further development of 375:communication protocols 3173:"Publicly available", 3167:ISO/IEC 14977:1996(E) 3132:Garshol, Lars Marius, 2672:Chomsky, Noam (1957). 2623:Chomsky, Noam (1956). 1451: 1092: 1022: 1013:metalinguistic formula 899:formal logical systems 895:string rewriting rules 349:. It was developed by 21:Boyce–Codd normal form 3450:Compiler construction 3424:Wirth syntax notation 2853:10.1145/363162.363165 2812:10.1145/355588.365140 2596:10.1145/363162.363165 2458:Wirth syntax notation 2361:, GNU version of yacc 2210:build on the BNF and 1979:| "'" 1446: 1027: 1017: 931:context-free grammars 363:context-free grammars 343:programming languages 3331:parts 11, 14, and 21 3293:grammars for C/C++, 3003:A Compiler Generator 2689:Naur, Peter (1961). 2678:. The Hague: Mouton. 2675:Syntactic Structures 2334:A Compiler Generator 2077:Note that "" is the 2001:| '"' 780:part, followed by a 189:improve this article 91:rewrite this article 3223:, the original BNF. 3110:Language technology 2483:Janikow, Cezary Z. 2386:algebraic data type 1815:"'" 1772:| "<" 994:Chomsky normal form 745:| "" 3287:, The free country 2557:"Panini biography" 2439:– railroad diagram 2212:regular expression 2154:regular expression 1782:">" 1452: 1413:<class name> 1002:Backus normal form 998:Pāṇini Backus form 988:, as it is "not a 978:Backus normal form 919:information theory 880:Leonard Bloomfield 814:followed by a dot. 335:Backus normal form 204:"Backus–Naur form" 3432: 3431: 3205:Language grammars 3200: 3171:, available from 3014:978-0-13-155077-3 3007:. Prentice-Hall. 2112:<rule-name> 1795:'"' 1529:">" 1519:"<" 1405:compiler-compiler 1087: 1086: 1038:is equivalent to 452:"|" indicating a 283: 282: 275: 265: 264: 257: 239: 163: 162: 155: 108: 107: 84:a manual or guide 64: 3462: 3445:Formal languages 3389:Backus–Naur form 3365: 3358: 3351: 3342: 3341: 3337:(STEP) standard. 3328: 3288: 3268: 3267: 3266: 3247:"BNF Web Club", 3238: 3222: 3198: 3197: 3191: 3180: 3143: 3119: 3118: 3104: 3098: 3097: 3095: 3093: 3078: 3072: 3071: 3069: 3068: 3059:. Archived from 3053: 3047: 3042: 3036: 3035: 3025: 3019: 3018: 3006: 2996: 2990: 2986: 2980: 2979: 2974:, archived from 2965: 2959: 2958: 2957: 2956: 2947:, archived from 2938: 2932: 2926: 2920: 2919: 2907: 2894: 2888: 2887: 2885: 2883: 2872: 2866: 2865: 2855: 2831: 2825: 2824: 2814: 2791:Knuth, Donald E. 2787: 2781: 2780: 2778: 2776: 2764: 2758: 2757: 2755: 2753: 2737: 2731: 2730: 2715: 2706: 2705: 2703: 2701: 2695: 2686: 2680: 2679: 2669: 2663: 2662: 2660: 2654:. Archived from 2629: 2620: 2614: 2608: 2598: 2574: 2568: 2567: 2565: 2564: 2553: 2547: 2546: 2533:Backus-Naur+Form 2528: 2522: 2520: 2516: 2511: 2492: 2491: 2489: 2480: 2353:Similar software 2266: 2262: 2255: 2251: 2247: 2240: 2163: 2159: 2132: 2128: 2124: 2117: 2113: 2108:operating system 2097: 2087: 2073:| "-" 2072: 2069: 2066: 2062: 2059: 2056: 2053: 2050: 2047: 2044: 2041: 2038: 2035: 2032: 2029: 2026: 2022: 2019: 2016: 2013: 2010: 2007: 2004: 2000: 1997: 1994: 1991: 1988: 1985: 1982: 1978: 1975: 1972: 1969: 1966: 1963: 1960: 1956: 1953: 1950: 1947: 1943: 1940: 1937: 1934: 1930: 1927: 1924: 1921: 1918: 1915: 1912: 1908: 1905: 1902: 1898: 1895: 1892: 1889: 1886: 1883: 1880: 1877: 1874: 1871: 1868: 1865: 1862: 1858: 1855: 1852: 1849: 1846: 1843: 1840: 1837: 1834: 1831: 1827: 1824: 1821: 1818: 1814: 1811: 1808: 1804: 1801: 1798: 1794: 1791: 1788: 1785: 1781: 1778: 1775: 1771: 1768: 1765: 1762: 1759: 1756: 1753: 1750: 1747: 1744: 1741: 1738: 1735: 1732: 1729: 1726: 1722: 1719: 1716: 1713: 1710: 1707: 1704: 1701: 1698: 1695: 1692: 1689: 1686: 1682: 1679: 1676: 1673: 1670: 1667: 1664: 1661: 1658: 1655: 1652: 1649: 1646: 1643: 1640: 1637: 1633: 1630: 1627: 1624: 1621: 1618: 1614: 1611: 1608: 1605: 1602: 1599: 1596: 1593:| "" 1592: 1589: 1586: 1582: 1579: 1576: 1573: 1570: 1567: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1542: 1538: 1535: 1532: 1528: 1525: 1522: 1518: 1515: 1512: 1509: 1506: 1503: 1500: 1497: 1494: 1491: 1488: 1485: 1482: 1478: 1475: 1472: 1469: 1466: 1463: 1460: 1439:Further examples 1430:parser generator 1422: 1418: 1414: 1394: 1391: 1388: 1385: 1382: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1352: 1348: 1324: 1321: 1318: 1315: 1312: 1309: 1306: 1303: 1300: 1297: 1294: 1291: 1288: 1285: 1282: 1279: 1276: 1273: 1270: 1267: 1259: 1255: 1252: 1248: 1244: 1233: 1229: 1226:is defined as a 1225: 1216: 1213: 1210: 1207: 1204: 1201: 1198: 1194: 1191: 1188: 1185: 1182: 1179: 1176: 1149: 1145: 1141: 1137: 1133: 1129: 1124: 1109: 1105: 1101: 1097: 1032: 1031: 986:Backus–Naur form 960: 927:natural language 909:(1920s–40s) and 888:phrase structure 767: 764: 761: 758:"Apt" 757: 754: 751: 748: 744: 741: 738: 734: 731: 728: 725: 722: 719: 716: 713: 710: 707: 704: 701: 698: 694: 691: 688: 685: 682: 679: 676: 673: 670: 667: 664: 661: 658: 655: 652: 649: 646: 643: 640: 637: 634: 631: 628: 624: 621: 618: 614: 611: 608: 605: 602: 599: 596: 593: 590: 587: 584: 581: 578: 574: 571: 568: 565: 562: 559: 556: 553: 550: 547: 544: 541: 538: 535: 532: 529: 526: 523: 520: 517: 514: 511: 508: 505: 502: 499: 496: 493: 490: 446: 439: 427: 412: 409: 406: 403: 371:instruction sets 367:document formats 347:formal languages 332: 331: 328: 327: 324: 321: 317: 316: 313: 310: 307: 304: 301: 291:Backus–Naur form 287:computer science 278: 271: 260: 253: 249: 246: 240: 238: 197: 173: 165: 158: 151: 147: 144: 138: 118: 117: 110: 103: 100: 94: 82:is written like 75: 74: 67: 56: 34: 33: 26: 3470: 3469: 3465: 3464: 3463: 3461: 3460: 3459: 3435: 3434: 3433: 3428: 3375: 3369: 3312: 3280: 3264: 3262: 3246: 3226: 3207: 3189: 3172: 3128: 3123: 3122: 3106: 3105: 3101: 3091: 3089: 3079: 3075: 3066: 3064: 3055: 3054: 3050: 3043: 3039: 3028:"BNF parser²", 3027: 3026: 3022: 3015: 2997: 2993: 2987: 2983: 2967: 2966: 2962: 2954: 2952: 2941:"Online demo", 2940: 2939: 2935: 2927: 2923: 2916: 2895: 2891: 2881: 2879: 2875: 2873: 2869: 2832: 2828: 2805:(12): 735–736. 2788: 2784: 2774: 2772: 2771:. BetaNews. Inc 2765: 2761: 2751: 2749: 2738: 2734: 2716: 2709: 2699: 2697: 2693: 2687: 2683: 2670: 2666: 2658: 2627: 2621: 2617: 2575: 2571: 2562: 2560: 2555: 2554: 2550: 2530: 2529: 2525: 2518: 2514: 2512: 2495: 2487: 2481: 2472: 2467: 2403: 2390:abstract syntax 2355: 2285: 2280: 2264: 2260: 2253: 2249: 2245: 2239: 2232: 2191: 2185: 2161: 2157: 2150: 2144: 2139: 2130: 2126: 2122: 2115: 2111: 2095: 2086:<literal> 2085: 2075: 2074: 2070: 2067: 2064: 2060: 2057: 2054: 2051: 2048: 2045: 2042: 2039: 2036: 2033: 2030: 2027: 2024: 2020: 2017: 2014: 2011: 2008: 2005: 2002: 1998: 1995: 1992: 1989: 1986: 1983: 1980: 1976: 1973: 1970: 1967: 1964: 1961: 1958: 1954: 1951: 1948: 1945: 1941: 1938: 1935: 1932: 1928: 1925: 1922: 1919: 1916: 1913: 1910: 1906: 1903: 1900: 1896: 1893: 1890: 1887: 1884: 1881: 1878: 1875: 1872: 1869: 1866: 1863: 1860: 1859:"" | 1856: 1853: 1850: 1847: 1844: 1841: 1838: 1835: 1832: 1829: 1828:"" | 1825: 1822: 1819: 1816: 1812: 1809: 1806: 1802: 1799: 1796: 1792: 1789: 1786: 1783: 1779: 1776: 1773: 1769: 1766: 1763: 1760: 1757: 1754: 1751: 1748: 1745: 1742: 1739: 1736: 1733: 1730: 1727: 1724: 1720: 1717: 1714: 1711: 1708: 1705: 1702: 1699: 1696: 1693: 1690: 1687: 1684: 1680: 1677: 1674: 1671: 1668: 1665: 1662: 1659: 1656: 1653: 1650: 1647: 1644: 1641: 1638: 1635: 1631: 1628: 1625: 1622: 1619: 1616: 1612: 1609: 1606: 1603: 1600: 1597: 1594: 1590: 1587: 1584: 1580: 1577: 1574: 1571: 1568: 1565: 1562: 1559: 1556: 1553: 1550: 1547: 1544: 1540: 1536: 1533: 1530: 1526: 1523: 1520: 1516: 1513: 1510: 1507: 1504: 1501: 1498: 1495: 1492: 1489: 1486: 1483: 1480: 1476: 1473: 1470: 1467: 1464: 1461: 1458: 1441: 1420: 1416: 1412: 1397: 1396: 1395: 1392: 1389: 1386: 1383: 1380: 1376: 1373: 1370: 1367: 1364: 1361: 1358: 1350: 1346: 1327: 1326: 1325: 1322: 1319: 1316: 1313: 1310: 1307: 1304: 1301: 1298: 1295: 1292: 1289: 1286: 1283: 1280: 1277: 1274: 1271: 1268: 1265: 1257: 1253: 1250: 1246: 1242: 1231: 1227: 1223: 1219: 1218: 1217: 1214: 1211: 1208: 1205: 1202: 1199: 1196: 1192: 1189: 1186: 1183: 1180: 1177: 1174: 1147: 1143: 1139: 1135: 1131: 1127: 1122: 1118:Boolean algebra 1107: 1103: 1099: 1095: 958: 856:rewriting rules 852: 770: 769: 768:| "" 765: 762: 759: 755: 752: 749: 746: 742: 739: 736: 732: 729: 727:opt-suffix-part 726: 723: 720: 717: 714: 711: 708: 705: 702: 699: 696: 692: 689: 686: 683: 680: 677: 674: 671: 668: 665: 662: 659: 656: 653: 650: 647: 644: 641: 638: 635: 632: 629: 626: 625:"." 622: 619: 616: 612: 609: 606: 603: 600: 597: 594: 591: 588: 585: 582: 579: 576: 572: 569: 566: 563: 561:opt-suffix-part 560: 557: 554: 551: 548: 545: 542: 539: 536: 533: 530: 527: 524: 521: 518: 515: 512: 509: 506: 503: 500: 497: 494: 491: 488: 478: 444: 421: 415: 414: 413:__expression__ 410: 407: 404: 401: 394: 318: 298: 294: 279: 268: 267: 266: 261: 250: 244: 241: 198: 196: 186: 174: 159: 148: 142: 139: 131:help improve it 128: 119: 115: 104: 98: 95: 88: 76: 72: 35: 31: 24: 17: 12: 11: 5: 3468: 3458: 3457: 3452: 3447: 3430: 3429: 3427: 3426: 3421: 3416: 3411: 3406: 3401: 3396: 3391: 3386: 3380: 3377: 3376: 3368: 3367: 3360: 3353: 3345: 3339: 3338: 3310: 3278: 3244: 3224: 3206: 3203: 3202: 3201: 3183:Kuhn, Marcus, 3165: 3155: 3145: 3127: 3126:External links 3124: 3121: 3120: 3099: 3073: 3048: 3037: 3020: 3013: 2991: 2981: 2960: 2933: 2921: 2915:978-0070537088 2914: 2889: 2867: 2826: 2782: 2759: 2732: 2707: 2681: 2664: 2661:on 2010-09-19. 2615: 2569: 2548: 2523: 2493: 2485:"What is BNF?" 2469: 2468: 2466: 2463: 2462: 2461: 2455: 2446: 2440: 2437:Syntax diagram 2434: 2428: 2422: 2416: 2410: 2402: 2399: 2398: 2397: 2381: 2375: 2372: 2362: 2354: 2351: 2350: 2349: 2343: 2340: 2337: 2322: 2319: 2316: 2310: 2304: 2295: 2284: 2281: 2279: 2276: 2275: 2274: 2271: 2268: 2257: 2242: 2231: 2228: 2226:in character. 2216:formal grammar 2187:Main article: 2184: 2181: 2146:Main article: 2143: 2140: 2138: 2135: 2123:<syntax> 2102:specifier (in 1737:opt-whitespace 1669:opt-whitespace 1639:opt-whitespace 1634:"|" 1629:opt-whitespace 1588:opt-whitespace 1583:" " 1575:opt-whitespace 1548:opt-whitespace 1534:opt-whitespace 1514:opt-whitespace 1457: 1449:syntax diagram 1440: 1437: 1357: 1355: 1264: 1262: 1173: 1171: 1115:canonical-form 1085: 1084: 1079: 1072: 1071: 1066: 1056: 1055: 1050: 1040: 1039: 1036: 851: 848: 844: 843: 840: 833: 822: 815: 804: 785: 778:street-address 695:"," 630:street-address 513:street-address 492:postal-address 487: 482:postal address 477: 474: 469: 468: 465: 458: 457: 445:__expression__ 441: 435: 400: 393: 390: 281: 280: 263: 262: 177: 175: 168: 161: 160: 122: 120: 113: 106: 105: 79: 77: 70: 65: 39: 38: 36: 29: 15: 9: 6: 4: 3: 2: 3467: 3456: 3455:Metalanguages 3453: 3451: 3448: 3446: 3443: 3442: 3440: 3425: 3422: 3420: 3417: 3415: 3412: 3410: 3407: 3405: 3402: 3400: 3397: 3395: 3392: 3390: 3387: 3385: 3382: 3381: 3378: 3373: 3366: 3361: 3359: 3354: 3352: 3347: 3346: 3343: 3336: 3332: 3327:on 2012-12-25 3326: 3322: 3318: 3317: 3311: 3308: 3304: 3300: 3296: 3292: 3286: 3285: 3279: 3276: 3272: 3261:on 2007-01-24 3260: 3256: 3252: 3251: 3245: 3242: 3236: 3232: 3231: 3225: 3221:: LRZ München 3220: 3216: 3215: 3209: 3208: 3195: 3188: 3187: 3178: 3177: 3170: 3166: 3163: 3159: 3156: 3153: 3149: 3146: 3141: 3137: 3136: 3130: 3129: 3116: 3112: 3111: 3103: 3087: 3083: 3077: 3063:on 2013-06-08 3062: 3058: 3052: 3046: 3041: 3033: 3032: 3024: 3016: 3010: 3005: 3004: 2995: 2985: 2978:on 2013-01-29 2977: 2973: 2972: 2964: 2951:on 2012-11-02 2950: 2946: 2945: 2937: 2930: 2925: 2917: 2911: 2906: 2905: 2899: 2893: 2878: 2871: 2863: 2859: 2854: 2849: 2845: 2841: 2837: 2830: 2822: 2818: 2813: 2808: 2804: 2800: 2796: 2792: 2786: 2770: 2763: 2747: 2743: 2736: 2728: 2724: 2720: 2719:Backus, J. W. 2714: 2712: 2692: 2685: 2677: 2676: 2668: 2657: 2653: 2649: 2645: 2641: 2638:(3): 113–24. 2637: 2633: 2626: 2619: 2612: 2606: 2602: 2597: 2592: 2588: 2584: 2580: 2573: 2558: 2552: 2544: 2540: 2539: 2534: 2527: 2510: 2508: 2506: 2504: 2502: 2500: 2498: 2486: 2479: 2477: 2475: 2470: 2459: 2456: 2454: 2450: 2447: 2444: 2441: 2438: 2435: 2432: 2429: 2426: 2423: 2420: 2417: 2414: 2411: 2408: 2405: 2404: 2395: 2391: 2387: 2382: 2379: 2376: 2373: 2371:preprocessor) 2370: 2366: 2363: 2360: 2357: 2356: 2347: 2344: 2341: 2338: 2335: 2331: 2326: 2323: 2320: 2317: 2314: 2311: 2308: 2305: 2303: 2299: 2296: 2294: 2290: 2287: 2286: 2272: 2269: 2258: 2256:respectively. 2243: 2237: 2236: 2235: 2227: 2225: 2221: 2217: 2213: 2209: 2205: 2203: 2199: 2195: 2190: 2180: 2178: 2174: 2169: 2167: 2155: 2149: 2134: 2119: 2109: 2105: 2101: 2093: 2091: 2082: 2080: 1455: 1450: 1445: 1436: 1433: 1431: 1427: 1408: 1406: 1401: 1354: 1343: 1341: 1337: 1333: 1261: 1240: 1235: 1170: 1168: 1164: 1159: 1157: 1153: 1119: 1116: 1111: 1091: 1083: 1080: 1077: 1074: 1073: 1070: 1067: 1064: 1061: 1058: 1057: 1054: 1051: 1048: 1045: 1042: 1041: 1037: 1034: 1033: 1030: 1026: 1021: 1016: 1014: 1009: 1007: 1003: 999: 995: 991: 987: 983: 979: 975: 971: 967: 962: 955: 952: 950: 946: 943:, proposed a 942: 938: 934: 932: 928: 924: 920: 916: 912: 908: 904: 900: 896: 891: 889: 885: 884:Zellig Harris 881: 877: 871: 869: 865: 861: 857: 847: 841: 838: 837:roman-numeral 834: 831: 827: 823: 820: 816: 813: 809: 805: 802: 798: 794: 790: 786: 783: 779: 775: 774: 773: 740:roman-numeral 598:personal-part 580:personal-part 543:personal-part 485: 483: 473: 466: 463: 462: 461: 455: 451: 447: 442: 436: 433: 432: 425: 420: 419: 418: 398: 389: 387: 383: 378: 376: 372: 368: 364: 361:notation for 360: 356: 352: 348: 344: 340: 336: 330: 292: 288: 277: 274: 259: 256: 248: 245:December 2023 237: 234: 230: 227: 223: 220: 216: 213: 209: 206: –  205: 201: 200:Find sources: 194: 190: 184: 183: 178:This article 176: 172: 167: 166: 157: 154: 146: 143:December 2023 136: 132: 126: 123:This article 121: 112: 111: 102: 99:December 2023 92: 87: 85: 80:This article 78: 69: 68: 63: 61: 54: 53: 48: 47: 42: 37: 28: 27: 22: 3388: 3329:. Includes 3325:the original 3315: 3283: 3263:, retrieved 3259:the original 3249: 3229: 3214:Algol-60 BNF 3213: 3185: 3175: 3168: 3134: 3109: 3102: 3090:. Retrieved 3085: 3076: 3065:. Retrieved 3061:the original 3051: 3040: 3031:Source forge 3030: 3023: 3002: 2994: 2984: 2976:the original 2970: 2963: 2953:, retrieved 2949:the original 2943: 2936: 2924: 2903: 2900:(Jan 1967). 2892: 2880:. Retrieved 2870: 2843: 2839: 2829: 2802: 2798: 2785: 2773:. Retrieved 2762: 2750:. Retrieved 2735: 2726: 2698:. Retrieved 2684: 2674: 2667: 2656:the original 2635: 2631: 2618: 2586: 2582: 2572: 2561:. Retrieved 2551: 2536: 2526: 2333: 2233: 2222:rather than 2206: 2192: 2170: 2151: 2120: 2116:<text> 2094: 2083: 2079:empty string 2076: 1453: 1434: 1409: 1402: 1398: 1347:<term> 1344: 1340:Metacompiler 1328: 1258:<expr> 1236: 1228:<term> 1224:<expr> 1220: 1160: 1152:metalanguage 1112: 1093: 1088: 1081: 1075: 1068: 1062: 1059: 1052: 1046: 1043: 1028: 1023: 1018: 1012: 1010: 1001: 997: 996:. The name 985: 982:Donald Knuth 977: 963: 956: 953: 945:metalanguage 935: 915:Noam Chomsky 892: 872: 853: 845: 771: 479: 470: 459: 450:vertical bar 429: 416: 395: 379: 334: 290: 284: 269: 251: 242: 232: 225: 218: 211: 199: 187:Please help 182:verification 179: 149: 140: 124: 96: 89:Please help 81: 57: 50: 44: 43:Please help 40: 3284:Source code 3250:DB research 2989:System/360. 2096:<EOL> 1305:'-' 1281:'+' 990:normal form 937:John Backus 911:Alan Turing 905:(in 1914), 893:Meanwhile, 797:end-of-line 750:opt-apt-num 660:opt-apt-num 651:street-name 431:nonterminal 397:written as 384:(EBNF) and 351:John Backus 3439:Categories 3372:Metasyntax 3316:Exp engine 3265:2007-01-25 3211:Bernhard, 3117:: Chalmers 3092:10 January 3067:2013-09-25 2955:2011-07-03 2898:Saul Rosen 2877:"ALGOL 60" 2846:(3): 137. 2563:2014-03-22 2519:<ab> 2465:References 2263:, such as 2248:) such as 2224:generative 2090:whitespace 1984:character2 1962:character1 1864:character2 1833:character1 1648:expression 1598:expression 1557:expression 1163:Saul Rosen 1156:Saul Rosen 974:Peter Naur 959:<ab> 830:state code 808:first name 700:state-code 610:first-name 359:metasyntax 355:Peter Naur 333:) (BNF or 215:newspapers 46:improve it 3374:notations 3335:ISO 10303 3186:Iso 14977 3176:Standards 3034:(project) 2971:Act world 2968:"Tools", 2882:April 18, 2515:< > 2359:GNU bison 2202:protocols 2046:rule-char 2037:rule-char 2028:rule-name 2006:rule-name 1996:character 1974:character 1882:character 1777:rule-name 1524:rule-name 1407:systems. 1336:TREE-META 1148:< > 1136:< > 1123:< > 913:(1936). 907:Emil Post 903:Axel Thue 876:linguists 819:apartment 801:recursion 789:last name 690:town-name 642:house-num 589:name-part 552:last-name 531:name-part 504:name-part 345:or other 52:talk page 3181:or from 3107:"BNFC", 3086:Qlik.com 3057:"JavaCC" 2862:52817672 2821:47537431 2793:(1964). 2746:Archived 2721:(1959). 2700:26 March 2652:19519474 2605:52817672 2401:See also 2396:and Java 2220:analytic 2137:Variants 2100:line-end 1697:line-end 1688:line-end 1657:line-end 1566:line-end 1387:>< 1323:')); 1209:>< 1203:>< 1161:In 1947 970:ALGOL 60 949:ALGOL 58 878:such as 868:Sanskrit 782:zip-code 709:ZIP-code 678:zip-part 522:zip-part 392:Overview 388:(ABNF). 3333:of the 3045:bnf2xml 2752:May 11, 2535:at the 2517:, like 2453:Algol68 2431:Meta-II 2394:Haskell 2200:(IETF) 1787:literal 1767:literal 1543:" 1384:integer 1362:integer 1332:META II 1239:META II 1063:comment 1047:comment 968:led to 850:History 812:initial 763:apt-num 620:initial 476:Example 417:where: 229:scholar 129:Please 3303:Ada 95 3295:Pascal 3230:Savage 3160:  3150:  3142:: Priv 3011:  2912:  2860:  2819:  2775:Jun 3, 2650:  2611:Pāṇini 2603:  2445:(TBNF) 2427:(EBNF) 2409:(ABNF) 2346:JavaCC 2298:Coco/R 2230:Others 2164:. The 2058:letter 2018:letter 1949:symbol 1923:letter 1914:symbol 1894:letter 1539:" 1493:syntax 1462:syntax 1338:, and 1317:(' 1299:') 1293:(' 1102:. The 1006:Pāṇini 860:Pāṇini 810:or an 793:suffix 454:choice 424:symbol 405:symbol 373:, and 339:syntax 231:  224:  217:  210:  202:  3419:OMeta 3299:COBOL 3237:: Net 3196:: CAM 3190:(PDF) 3179:, ISO 2944:RPatk 2858:S2CID 2817:S2CID 2694:(PDF) 2659:(PDF) 2648:S2CID 2628:(PDF) 2601:S2CID 2488:(PDF) 2415:(CDL) 2330:SHARE 2289:ANTLR 2104:ASCII 2068:digit 1936:digit 1904:digit 1873:text2 1851:text2 1842:text1 1820:text1 1810:text2 1800:text1 1390:digit 1374:digit 1308:TERM 1284:TERM 1272:TERM 1266:EXPR 1206:addop 1069:begin 1060:begin 966:ALGOL 784:part. 428:is a 236:JSTOR 222:books 3414:TBNF 3404:JSGF 3399:EBNF 3384:ABNF 3307:PL/I 3291:EBNF 3275:Java 3162:5511 3152:5234 3094:2022 3009:ISBN 2929:RBNF 2910:ISBN 2884:2015 2777:2014 2754:2011 2702:2015 2543:GFDL 2378:Qlik 2365:Yacc 2313:GOLD 2302:EBNF 2293:Java 2189:ABNF 2183:ABNF 2177:PL/I 2160:and 2142:EBNF 2114:and 2071:> 2065:< 2061:> 2055:< 2049:> 2043:< 2040:> 2034:< 2031:> 2025:< 2021:> 2015:< 2009:> 2003:< 1999:> 1993:< 1987:> 1981:< 1977:> 1971:< 1965:> 1959:< 1952:> 1946:< 1939:> 1933:< 1926:> 1920:< 1917:> 1911:< 1907:> 1901:< 1897:> 1891:< 1885:> 1879:< 1876:> 1870:< 1867:> 1861:< 1854:> 1848:< 1845:> 1839:< 1836:> 1830:< 1823:> 1817:< 1813:> 1807:< 1803:> 1797:< 1790:> 1784:< 1780:> 1774:< 1770:> 1764:< 1758:> 1755:term 1752:< 1749:> 1746:list 1743:< 1740:> 1734:< 1731:> 1728:term 1725:< 1721:> 1718:term 1715:< 1709:> 1706:list 1703:< 1700:> 1694:< 1691:> 1685:< 1681:> 1675:< 1672:> 1666:< 1660:> 1654:< 1651:> 1645:< 1642:> 1636:< 1632:> 1626:< 1623:> 1620:list 1617:< 1613:> 1610:list 1607:< 1601:> 1595:< 1591:> 1585:< 1578:> 1572:< 1569:> 1563:< 1560:> 1554:< 1551:> 1545:< 1537:> 1531:< 1527:> 1521:< 1517:> 1511:< 1505:> 1502:rule 1499:< 1496:> 1490:< 1487:> 1484:rule 1481:< 1477:> 1474:rule 1471:< 1465:> 1459:< 1447:BNF 1426:yacc 1421:> 1417:< 1393:> 1381:< 1377:> 1371:< 1365:> 1359:< 1247:> 1245:and 1243:< 1215:> 1212:term 1200:expr 1197:< 1193:> 1190:term 1187:< 1181:> 1178:expr 1175:< 882:and 826:town 766:> 760:< 753:> 747:< 743:> 737:< 730:> 724:< 721:> 715:< 712:> 706:< 703:> 697:< 693:> 687:< 681:> 675:< 672:> 666:< 663:> 657:< 654:> 648:< 645:> 639:< 633:> 627:< 623:> 617:< 613:> 607:< 601:> 595:< 592:> 586:< 583:> 577:< 573:> 567:< 564:> 558:< 555:> 549:< 546:> 540:< 534:> 528:< 525:> 519:< 516:> 510:< 507:> 501:< 495:> 489:< 426:> 422:< 408:> 402:< 353:and 326:aʊər 208:news 3321:SVN 3271:Ada 3241:SQL 3158:RFC 3148:RFC 2848:doi 2807:doi 2640:doi 2591:doi 2369:Lex 2325:XPL 2252:or 2175:'s 2173:IBM 2110:). 2052:::= 2012:::= 1990:::= 1968:::= 1955:::= 1942:::= 1929:::= 1888:::= 1857:::= 1826:::= 1793:::= 1761:::= 1712:::= 1678:EOL 1663:::= 1604:::= 1581:::= 1541:::= 1508:::= 1468:::= 1368:::= 1320:SUB 1314:OUT 1296:ADD 1290:OUT 1184:::= 1140:::= 1128:::= 1096:::= 1082:end 1076:end 941:IBM 923:MIT 921:at 897:as 756:::= 733:::= 718:EOL 684:::= 669:EOL 636:::= 604:::= 570:EOL 537:::= 498:::= 438:::= 411:::= 341:of 289:, 285:In 191:by 133:to 3441:: 3305:, 3301:, 3297:, 3273:, 3255:CH 3253:, 3235:AU 3233:, 3219:DE 3217:, 3194:UK 3192:, 3140:NO 3138:, 3115:SE 3113:, 3084:. 2856:. 2844:10 2842:. 2838:. 2815:. 2801:. 2797:. 2744:. 2725:. 2710:^ 2646:. 2634:. 2630:. 2599:. 2587:10 2585:. 2581:. 2496:^ 2473:^ 2204:. 2081:. 2063:| 2023:| 1909:| 1899:| 1723:| 1683:| 1615:| 1479:| 1419:, 1342:. 1334:, 1275:$ 1234:. 1158:. 1130:, 1108:or 1100::≡ 1015:: 980:. 890:. 864:BC 615:| 575:| 484:: 377:. 369:, 55:. 3364:e 3357:t 3350:v 3319:( 3309:. 3277:. 3243:. 3144:. 3096:. 3070:. 3017:. 2931:. 2918:. 2886:. 2864:. 2850:: 2823:. 2809:: 2803:7 2779:. 2756:. 2704:. 2642:: 2636:2 2607:. 2593:: 2566:. 2490:. 2336:) 2267:. 2261:+ 2246:* 2241:. 2162:+ 2158:* 2131:| 1379:| 1311:. 1302:| 1287:. 1278:( 1269:= 1254:) 1251:( 1195:| 1144:| 1132:| 1104:| 1053:; 1044:; 329:/ 323:n 320:ˈ 315:s 312:ə 309:k 306:æ 303:b 300:ˌ 297:/ 293:( 276:) 270:( 258:) 252:( 247:) 243:( 233:· 226:· 219:· 212:· 185:. 156:) 150:( 145:) 141:( 127:. 101:) 97:( 86:. 62:) 58:( 23:.

Index

Boyce–Codd normal form
improve it
talk page
Learn how and when to remove these messages
a manual or guide
rewrite this article
help improve it
make it understandable to non-experts
Learn how and when to remove this message

verification
improve this article
adding citations to reliable sources
"Backus–Naur form"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Learn how and when to remove this message
computer science
/ˌbækəsˈnaʊər/
syntax
programming languages
formal languages
John Backus
Peter Naur
metasyntax
context-free grammars

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.