더북(TheBook)


2.1컴파일러


일반적인 컴파일러는 렉서(lexer)와 파서(parser)로 구성됩니다. 소스 코드가 렉서와 파서에 의해 어떻게 변하는지 간략히 알아봅시다.

232

그림 11-3 컴파일러의 구성


그림 11-3에서 렉서로 입력되는 것은 소스 코드입니다. 소스 코드도 결국에는 문자에 불과합니다. 이 문자들이 렉서를 거치면서 여러 개의 토큰(token)으로 변경됩니다.

토큰은 뭘까요? 예를 들어 “나는 사과를 먹었다”는 문장이 있습니다. 이 문장은 주어(“나는”), 목적어(“사과를”), 동사(“먹었다”)로 나눌 수 있습니다. 이렇게 문장을 종류별로 쪼갠 다음 종류와 문자를 함께 나타낸 것을 토큰이라고 합니다. 위 문장을 토큰으로 나타내면 다음과 같습니다.

<주어, “나는”>, <목적어, “사과를”>, <동사, “먹었다”>

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