Review Questions
1. BNF 사용의 장점
문제 : 왜 BNF를 사용하는 것이 비형식적인 시스템 설명보다 더 유리한가?
- BNF는 정형화된 규칙 기반으로 문법을 표현하므로 모호성이 없다.
 
- 컴파일러나 parser가 기계적으로 처리 가능하다.
 
- 문법 변경이나 유지보수가 용이하고, 언어 정의와 구현 간 일관성 확보에 유리하다.
 
2. Lexical analyzer의 역할
문제 : lexical analyzer는 어떻게 syntax analyzer의 front-end 역할을 하는가?
- lexical analyzer는 source code를 token 단위로 분리하여 syntax analyzer에게 전달함
 
- comment 제거, whitespace 무시, 식별자/상수 분리 등 전처리 역할 수행
 
- 복잡한 문법 구조를 단순화하여 구문 분석이 가능하게 도와줌
 
3. Finite automata와 regular grammar의 정의
문제 : finite automata와 regular grammar를 정의하라.