Review Questions
1. 렉심(lexeme)과 토큰(token)의 정의
문제 : 렉심과 토큰을 정의하라.
- 렉심(Lexeme): 소스 코드에서 문법적으로 유효한 최소 단위의 문자열. 예: 
if, x, 123 
- 토큰(Token): 렉심에 의미적 분류를 부여한 것. 예: 
if는 KEYWORD, 123은 INTEGER_LITERAL 
2. 프로그래밍 언어는 어떻게 공식적으로 정의되는가?
문제 : 프로그래밍 언어는 어떻게 형식적으로 정의되는가?
- 형식 문법(formal grammar)과 형식 의미(formal semantics)를 통해 정의됨
- 문법: 구문 구조 (BNF 등으로 표현)
 
- 의미: 각 구조의 동작 의미 (Operational, Denotational, Axiomatic Semantics 등)
 
 
3. 언어의 구문(syntax)은 보통 어떤 형식으로 기술되는가?
문제 : 프로그래밍 언어의 구문은 보통 어떤 형식으로 기술되는가?
- 대부분 BNF(Backus-Naur Form) 또는 **EBNF(Extended BNF)**를 사용하여 기술한다.
 
4. 메타언어란 무엇인가?