Syntax with Backus-Naur Form (BNF)
COM2008. 1. 10. 23:59 |Backus-Naur Form (BNF) 은 고급언어를 기술하는 표준형식이다. (나도 잘 모르므로.. ) 간단히 언급하면...
::= 는 definition 정도의 의미가 되겠다.
| 는 OR 정도의 의미가 되겠다.
예를 들면...
digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
와 같이 digit 를 정의할 수 있다.
{ } 를 이용하여 대상에 대해 subscript 로 몇 몇 부가설명을 덧붙일 수 있다.
{ }1 : 하나만 선택
{ }0+ : 0 번 이상 선택 또는 반복.
{ }1+ : 1번 이상 선택 또는 반복.
{ }opt : 옵션 항목
예.
alphanumeric_string ::= { letter_or_digit }0+
letter_or_digit ::= letter | digit
letter ::= lowercase_letter | uppercase_letter
lowercase_letter ::= a | b | c | ... | y | z
uppercase_letter ::= A | B | C | ... | Y | Z
digit ::= 0 | 1 | 2 | ... | 9
위와같이 alphanumeric_string 을 정의하면, 숫자와 문자로 이루어진 문자열을 정의를 할 수 있다.
이 정의는 아무것도 없는 즉, 널문자열도 포함한다. 왜냐면 { }0+ 이기 때문이다.
참고로, 정의하고자 하는 것은 이탤릭체로 쓰고, 더이상 정의가 불가능한 최하위개념은 그냥체로 쓴다.