728x90
컴파일 과정

1. 전처리 과정
- 헤더 파일 삽입
- #include 구문을 만나면 헤더파일을 찾아 그 내용을 순차적으로 삽입한다.
- 매크로 치환 및 적용한다.
2. 컴파일 과정(전단부 - 중단부 - 후반부)
- 전단부
- 언어 종속적인 부분 처리 - 어휘, 구문, 의미 분석
- 중단부
- SSA 기반으로 최적화 수행 - 프로그램 수행 속도 향상으로 성능 높이기 위함
- 후단부
- RTS로 아키텍처 최적화 수행 - 더 효율적인 명령어로 대체해서 성능 높이기 위함
3. 어셈블 과정
- 컴파일이 끝나면 어셈블리 코드가 된다. 이 코드는 어셈블러에 의해 기계어가 된다.
- 어셈블러로 생성되는 파일은 명령어와 데이터가 들어있는 ELF 바이너리 포맷 구조를 가진다(링커가 여러 바이너리 파일을 하나의 실행 파일로 효과적으로 묶기 위해 명령어와 데이터 범위 를 일정한 규칙을 갖고 형식화 해놓는다.)
4. 링킹 과정
- 오브젝트 파일들과 프로그램에서 사용된 C 라이브러리를 링크한다.
- 해당 링킹 과정을 거치면 실행파일이 만들어진다.
728x90
'Computer > CS' 카테고리의 다른 글
중앙처리장치(CPU) 작동원리 (0) | 2024.06.26 |
---|---|
컴퓨터의 구성 (0) | 2024.06.25 |
DMA(Direct Memory Access) (0) | 2024.03.22 |
Swap Disk (1) | 2024.03.22 |
Page의 종류 (0) | 2024.03.22 |