어휘 구조 : 프로그램을 구성하는 토큰(token)의 구조 정의
- 토큰의 종류
- 예약어(reserved word) = 프로그래밍 언어에서 미리 정의된 단어. 특별한 의미
- 리터럴(literal) 또는 상수(constant) =코드에서 사용되는 고정된 값
- 특수 기호(special symbol) = 연산자나 구분자와 같은 기호
- 식별자(identifier) = 변수, 함수, 클래스 등의 이름을 나타내는 문자열
- 토큰 정의 방법
- 자연 언어로 설명 / 정규 표현식(Regular Expression; RE)을 통해 구조화
- (a|b)c는 ‘a’ 또는 ‘b’가 반복되고 마지막에 ‘c’가 오는 모든 문자열
- 식별자는 [a-zA-Z_$][a-zA-Z_$0-9] 형식으로 정의
- 알파벳이나 $, _로 시작하고 이후에는 숫자도 포함할 수 있도록
- 구문 구조 (Syntactic Structure) = 프로그램에서 토큰들이 조합되는 규칙 / 문법 정의
- 구문 구조 기술 방법
- 문맥-무관 문법(Context-Free Grammar; CFG) = 프로그래밍 언어에서 널리 사용되는 구문 정의 방식
- 배커스-나우르 형식(Backus-Naur Form; BNF) = CFG를 표현하는 대표적인 형식입
- 확장 배커스-나우르 형식(Extended Backus-Naur Form; EBNF) = BNF에 정규 표현식을 추가한 형식
- 구문 다이어그램(Syntax Diagram) = 그래픽 형식으로 구문 표현 / BNF와 EBNF와 같은 표현력 수준
- 구문 구조 기술 방법
- 예제 1: 간단한 영어 문장의 문법 정의
- 문법 규칙
- <sentence> → <noun-phrase> <verb-phrase> .
- <noun-phrase> → <article> <noun>
- <article> → a | the
- <noun> → girl | dog
- <verb-phrase> → <verb> <noun-phrase>
- <verb> → sees | pets
- <sentence>로 시작하여 단계적으로 규칙을 적용해 나가면 the girl sees a dog .이라는 문장 생성
- 문법 규칙
- 예제 1: 간단한 영어 문장의 문법 정의
- 예제 2: 간단한 정수 산술식의 문법
-
- <expr> → <expr> + <expr> | <expr> * <expr> | (<expr>) | <number>
- <number> → <number> <digit> | <digit>
- <digit> → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
- <expr>로 시작하여 규칙을 차례로 적용하면 3 * (5 + 2)와 같은 산술식을 생성
-
- 예제 2: 간단한 정수 산술식의 문법
'[ Computer Science ]' 카테고리의 다른 글
[Programming Language] 5. 설계 원칙 (0) | 2024.10.31 |
---|---|
[Programming Language] 4. 프로그래밍 언어 개발의 역사 (6) | 2024.10.31 |
[Programming Language] 3. 전체에 대한 개관 (6) | 2024.10.31 |
[Programming Language] 2. 추상화 (2) | 2024.10.31 |
[Programming Language] 1. 프로그래밍 언어론 개요 (0) | 2024.10.31 |