개요

Backus-Naur form이고 Backus Normal Form이라고도 불리는 약칭 BNF는 문맥 무관 문법 을 나타내기 위해 만들어진 표기법이다. 존 배커스와 페테르 나우르의 이름을 따서 부른다.

표기법

BNF는 기본적으로 다음의 문법을 따른다.

<기호> ::= <표현식>

사용 예 - 미국의 우편체계

<postal-address> ::= <name-part><street-address><zip-part>
<name-part> ::= <personal-part><last-name><opt-suffix-part><EOL>
								| <personal-part><name-part>
<personal-part> ::=<first-name>|<initial> "."
<street-address> ::= <house-num><street-name><opt-apt-num><EOL>
<zip-part> ::= <town-name> "," <state-code><ZIP-code><EOL>
<opt-suffix-part> ::= "Sr." | "Jr." | <roman-numeral> | ""
<opt-apt-num> ::= <apt-num> | ""

사용 예 - 숫자

<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<number> ::= <digit> | <number><digit>

terminal expression과 nonterminal expression

사용 예에서 <opt-suffix-part>과 같이 더 이상 진행되지 않는 표현을 'terminal expression'이라고 부릅니다. 버스의 종착역인 터미널과 비슷합니다.