보통 우리가 코딩을 하면 어셈블리어로 컴파일되어 기계가 알아들을 수 있게 변환된 다음 코드가 실행된다. 이 과정에서 분명 사람은 거의 영어에 가까운 언어로 코딩을 하는데, 기계가 이걸 어떻게 알아듣고 어셈블리어로 바꿀지 의문이 들 수 있다. 이 변환을 수행해주는 컴파일러의 원리에 대해 알아보자. 위 그림을 보면 source code가 assembly code로 변환될 때까지 꽤 많은 과정이 필요함을 볼 수 있다. 이번 글에서는 첫 단계인 Lexical Analysis에 대해 조금 살펴보자. ScannerLexical Analysis를 수행해주는 프로그램(?)의 이름을 Scanner라고도 하는데, 이름처럼 source code를 스캔하는 작업을 하기 때문이다.사람들의 언어로 예시를 들면 문장을 받아서 한 ..