EBNF(Extended Backus Naur Form)란 BNF의 사소한 불편을 개선한 표기법입니다.
<number> 는 <number><digit>과 <digit> 으로 대치가 가능한데, 이는 결국 <digit>를 몇 번 반복하냐의 문제로 볼 수 있으므로, 이를 EBNF로 표기하면 다음과 같습니다.
가운데의 연산자들을 제외하고는 표현이 같습니다.
이런 경우에 ()를 사용하여 다음과 같이 표현이 가능합니다.
{} 사용
{}는 0번 이상의 반복을 의미합니다.
<number> → <number><digit>
| <digit>
BNF 표기의 예| <digit>
<number> 는 <number><digit>과 <digit> 으로 대치가 가능한데, 이는 결국 <digit>를 몇 번 반복하냐의 문제로 볼 수 있으므로, 이를 EBNF로 표기하면 다음과 같습니다.
<number> → <digit> {<digit>}
[] 사용
[]는 선택적인 옵션을 의미합니다.
<if> → if (<expr>) <term>
| if (<expr>) <term> else <term>
BNF 표현의 예| if (<expr>) <term> else <term>
<if> → if (<expr>) <term> [else <term>]
BNF로 표기된 것을 EBNF로 표현() 사용
여러가지 옵션 중 반드시 하나를 선택하여야 할 때 사용합니다.
<expr> → <expr> + <expr>
| <expr> - <expr>
| <expr> × <expr>
BNF 표현의 예| <expr> - <expr>
| <expr> × <expr>
가운데의 연산자들을 제외하고는 표현이 같습니다.
이런 경우에 ()를 사용하여 다음과 같이 표현이 가능합니다.
<expr> → <expr> (+ | - | x ) <expr>
BNF로 표기된 것을 EBNF로 표현'컴퓨터' 카테고리의 다른 글
SSD 장착 이후 Windows 체험 지수 (0) | 2011.03.30 |
---|---|
주말에 지른 SSD 배송 완료! (0) | 2011.03.29 |
[포터블 제작] ThinApp를 이용하여 MS Office 2007 포터블 만들기 (3) | 2011.03.27 |
SSD 를 질렀습니다 (0) | 2011.03.26 |
[Java] 배열 (0) | 2011.03.25 |
SQL 주요 함수 #1 (0) | 2011.03.23 |
파이어폭스4 정식 출시 (0) | 2011.03.23 |
[SQL] SELECT 구문의 기본 (0) | 2011.03.21 |
[프로그래밍 언어론] 구문분석의 모호성 (0) | 2011.03.20 |
[프로그래밍 언어론] 구문 분석 방법 (2) | 2011.03.20 |
IE9 이상으로 브라우저를 업그레이드하거나, 크롬, 파이어폭스 등 최신 브라우저를 이용해주세요.