더북(TheBook)

총 세 개의 토큰으로 나타낼 수 있습니다. 프로그래밍 언어도 마찬가지입니다. 우리가 작성한 코드는 언어의 문법에 맞게 토큰으로 쪼갤 수 있습니다. 종류에는 변수나 함수 이름을 의미하는 식별자, for·while·if·elif 같은 키워드, 1·2·3·'a'·'b'·'c' 같은 상수, + · - · * · / 같은 연산자 등이 있습니다.

파서는 토큰을 분석하여 분석 트리(parse tree)를 구성합니다. 컴파일러마다 분석 트리를 생성하기도 하고 생성하지 않기도 합니다. 분석 트리가 만들어지면 이를 이용해 목적 코드(C 언어는 기계어, 파이썬은 바이트 코드)를 생성합니다. 이를 코드 생성(code generation)이라고 합니다.


TIP 분석 트리를 이해하려면 BNF 표기법 등 컴파일러 지식이 많이 필요하므로 이 책에서는 생략하겠습니다. 다만 분석 트리를 변형해 만들어지는 추상 구문 트리에 대해서는 잠시 후에 간략히 알아봅니다.


파이썬은 파이썬 컴파일러를 통해 다음과 같은 과정을 거쳐 바이트 코드를 생성합니다.

1| 소스 코드 → 분석 트리

2| 분석 트리 → 추상 구문 트리

3| 심벌 테이블 생성

4| 추상 구문 트리 → 바이트 코드

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.