Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Backus–Naur form
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Impact == BNF significantly influenced programming language development, notably as the basis for early [[compiler-compiler]] systems. Examples include Edgar T. Irons' "A Syntax Directed Compiler for ALGOL 60" and Brooker and Morris' "A Compiler Building System," which directly utilized BNF.<ref>{{cite book |last1=McKeeman |first1=W. M. |title=A Compiler Generator |last2=Horning |first2=J.J. |last3=Wortman |first3=D. B. |publisher=Prentice-Hall |year=1970 |isbn=978-0-13-155077-3}}</ref> Others, like Schorre's [[META II]], adapted BNF into a programming language, replacing <code>< ></code> with quoted strings and adding operators like $ for repetition, as in:<syntaxhighlight lang="ebnf"> EXPR = TERM $('+' TERM .OUT('ADD') | '-' TERM .OUT('SUB')); </syntaxhighlight>This influenced tools like [[yacc]], a widely used [[parser generator]] rooted in BNF principles, and Unix utilities like [[yacc]].<ref>{{Citation |title=Source forge |type=project |url=http://bnfparser2.sourceforge.net/ |contribution=BNF parser²}}</ref> BNF remains one of the oldest computer-related notations still referenced today, though its variants often dominate modern applications. Examples of its use as a metalanguage include defining arithmetic expressions:<syntaxhighlight lang="bnf"> <expr> ::= <term> | <expr> <addop> <term> </syntaxhighlight>Here, {{Code|1=<expr>|2=bnf}} can recursively include itself, allowing repeated additions. BNF today is one of the oldest computer-related languages still in use.{{citation needed|date=March 2020}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)