Computer/CS

컴파일 과정

에린_1 2024. 6. 21. 22:27
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