책너두 (컴퓨터 밑바닥의 비밀) 2일차 컴파일러
- Book/컴퓨터 밑바닥의 비밀
- 2024. 4. 11.
요약
프로그래밍 언어로 작성된 “소스 파일”을 컴파일러에게 먹여주면 컴파일러는 이것을 꼭꼭 씹고 뜯고 맛본 후, 실행 파일 형태로 뱉어냄.
- 실행 파일이 바로 CPU가 직접 실행할 수 있는 기계 명령어 임.
- 즉, 컴파일러는 “번역기” 이자 “텍스트 처리 프로그램” 이라고 생각할 수 있음.
컴파일러는 소스 파일의 각 항목을 잘게 쪼개어 토큰화 함.
- 소스 코드에서 토큰을 추출하는 과정을
어휘 분석(lexical analysis)
라고 함.
- 소스 코드에서 토큰을 추출하는 과정을
토큰을 가지고 그 의도를 표현해야만 함.
- 특정 토큰 키워드에 따라 컴파일러는 문법 오류를 보고할 수 있음.
- 이 과정을
해석(parsing)
이라고 함. - 컴파일러는 해석을 통한 구조를 트리로 표현함.
구문 트리에서 이상이 있는지 확인함.
- 이 단계를 통과하면 컴파일 오류가 없다는 것이 증명됨.
- 이 과정을
의미 분석(semantic analysis)
라고 함.
의미 분석 후, 컴파일러는 구문 트리를 더 다듬어진 형태인
중간 코드(Intermediate Representation Code)
를 생성함.- 중간 코드가 만들어지면서 추가적인 최적화 되기도 함.
이제 컴파일러는 중간 코드를 어셈블리어 코드로 변환함.
여기 까지 “컴파일 과정”을 살펴보았는데, 이게 끝이 아님.
- 모든 소스 파일에는 각각의 대상 파일이 있는데, 이 대상 파일을 실행 파일로 합쳐주는 작업이 있어야 함.
- 이걸 해주는걸
링크(Link)
라고 하며, 링크를 담당하는 프로그램을링커(linker)
라고 함.
'Book > 컴퓨터 밑바닥의 비밀' 카테고리의 다른 글
책너두 (컴퓨터 밑바닥의 비밀) 6일차 스레드 안전 코드 (0) | 2024.04.18 |
---|---|
책너두 (컴퓨터 밑바닥의 비밀) 5일차 스레드 간 공유되는 프로세스 리소스 (0) | 2024.04.17 |
책너두 (컴퓨터 밑바닥의 비밀) 4일차 운영 체제, 프로세스, 스레드 (0) | 2024.04.16 |
책너두 (컴퓨터 밑바닥의 비밀) 3일차 링커 (1) | 2024.04.15 |
책너두 (컴퓨터 밑바닥의 비밀) 1일차 : 프로그래밍 언어 (0) | 2024.04.08 |