CS/compiler

    [컴파일러] 토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)

    [컴파일러] 토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)

    컴파일러 [컴파일러] 컴파일러란? 컴파일러 컴파일러는 명령어 번역 프로그램이다. 컴파일러는 소스 코드 혹은 원시 코드를 목적 코드로 옮겨주는 역할을 한다. 쉽게 설명하면 여기서 소스 코드는 사람이 작성한 코드이며, 목적 gobae.tistory.com 에서 컴파일러는 소스코드를 기계어로 바꿔주는 역할을 한다고 했다. 여기서 컴파일러는 구문 분석 -> 최적화 -> 코드 생성 -> 링킹의 과정을 거친다. 이 포스팅에서는 구문 분석에 대해 살펴보겠다. 컴파일러의 구문 분석 과정 컴파일의 첫 과정인 구문 분석 과정을 살펴보자. 컴파일러가 소스 코드 파일을 읽어서 개별 문법 요소 단위로 자른 뒤, 이 문법 요소들을 해석해서 추상 구문 트리(AST)를 작성한다. 사실 필자도 쓰면서 무슨 말인지 잘 모르겠으니, 자세..

    [컴파일러] 컴파일러란?

    [컴파일러] 컴파일러란?

    컴파일러 컴파일러는 명령어 번역 프로그램이다. 컴파일러는 소스 코드 혹은 원시 코드를 목적 코드로 옮겨주는 역할을 한다. 쉽게 설명하면 여기서 소스 코드는 사람이 작성한 코드이며, 목적 코드는 기계어(컴퓨터가 이해할 수 있는 언어)라고 생각할 수 있겠다. 물론, 목적 코드가 문서 파일이나, 그림 파일 등이 될 수도 있다. 컴파일러가 왜 필요한가? 우리가 사용하는 C, C++, 파이썬 자바스크립트 등은 "사람이 이해하기 쉬운 형태"의 언어이다. 우리가 열심히 작성한 코드를 사실 컴퓨터는 이해하지 못한다. 여기서 컴파일러는 우리가 작성한 코드를 일정한 규칙을 가지고 컴퓨터가 이해할 수 있도록 바꿔준다. 즉, 우리와 미국인 사이에 국어와 영어를 모두 아는 컴파일러라는 통역사가 의사소통을 돕는 것이다. 이 컴파..