Backus–Naur Form

E129070

Backus–Naur Form is a formal notation used to define the syntax of programming languages and other formal grammars in a precise, structured way.

All labels observed (6)

Label Occurrences
Backus–Naur form 5
Backus–Naur Form canonical 4
BNF 2

How this entity was disambiguated

Statements (44)

Predicate Object
instanceOf formal grammar notation
metalanguage
syntax specification language
alsoKnownAs Backus–Naur Form
surface form: BNF

Backus–Naur Form
surface form: Backus Normal Form
basedOn context-free grammar theory
cannotExpress context-sensitive language constraints
category formal methods
programming language syntax
comparedWith regular expressions
definesRelationBetween nonterminal symbols and sequences of terminals and nonterminals
fieldOfUse compiler construction
computer science
formal language theory
programming language theory
firstUsedFor ALGOL 60
surface form: ALGOL 60 language specification
hasAbbreviation Backus–Naur Form self-linksurface differs
surface form: BNF
hasComponent metasymbols
nonterminal symbols
production rules
terminal symbols
hasVariant Augmented Backus–Naur Form
Backus–Naur Form self-linksurface differs
surface form: Extended Backus–Naur Form
influenced Augmented Backus–Naur Form
Backus–Naur Form self-linksurface differs
surface form: Extended Backus–Naur Form

many programming language specifications
syntax diagrams
moreExpressiveThan regular expressions for nested structures
namedAfter John Backus
Peter Naur
property can describe all context-free languages
roleInSpecification provides precise, unambiguous syntax definitions
typicalMetasymbol ::=
< >
|
typicalNotationForNonterminals angle brackets around names
typicalNotationForTerminals literal character sequences
usedFor defining context-free grammars
defining the syntax of programming languages
describing language syntax in language specifications
specifying formal languages
usedIn documentation of data formats
language reference manuals
standards documents for programming languages

How these facts were elicited

Referenced by (15)

Full triples — surface form annotated when it differs from this entity's canonical label.

ALGOL 60 hasSyntaxDescription Backus–Naur Form
ALGOL 60 wasDescribedUsing Backus–Naur Form
IFIP Working Group 2.1 relatedTo Backus–Naur Form
this entity surface form: backus–naur form
Backus–Naur Form alsoKnownAs Backus–Naur Form
this entity surface form: BNF
Backus–Naur Form alsoKnownAs Backus–Naur Form
this entity surface form: Backus Normal Form
Backus–Naur Form influenced Backus–Naur Form self-linksurface differs
this entity surface form: Extended Backus–Naur Form
Backus–Naur Form hasVariant Backus–Naur Form self-linksurface differs
this entity surface form: Extended Backus–Naur Form
Backus–Naur Form hasAbbreviation Backus–Naur Form self-linksurface differs
this entity surface form: BNF
John Backus notableWork Backus–Naur Form
this entity surface form: Backus–Naur form
John Backus knownFor Backus–Naur Form
this entity surface form: Backus–Naur form
John Backus developed Backus–Naur Form
this entity surface form: Backus–Naur form
Peter Naur knownFor Backus–Naur Form
this entity surface form: Backus–Naur form
Peter Naur coDeveloperOf Backus–Naur Form
this entity surface form: Backus–Naur form
ALGOL keyConcept Backus–Naur Form
ALGOL introducedNotation Backus–Naur Form