[컴퓨터 구조] 언어의 컴파일 과정

2023. 3. 10. 00:34기술 창고/CS 지식

728x90
SMALL

C 언어 케이스

  • 컴파일 과정 : 전처리기 -> 컴파일러 -> 어셈블러 -> 링커
  • 전처리 과정
    • 본격적으로 컴파일하기 전에 처리할 작업들
    • 외부에 선언된 다양한 소스 코드, 라이브러리 포함
    • 프로그래밍의 편의를 위해 작성된 매크로 변환
    • 컴파일할 영역 명시 등
  • 컴파일 과정
    • 전처리가 완료되어도 여전히 소스코드인 상태이다.
    • 전처리 완료된 소스코드를 저급 언어(어셈블리어)로 변환
  • 어셈블 과정
    • 어셈블리어를 기계어(저급언어)로 변환
    • 목적 코드를 포함하는 목적 파일이 된다.
  • 링킹
    • 각기 다른 목적코드들을 연결하여 실행할 수 있도록 만드는 과정.
    • 예) 한 파일에 존재하는 메인 메소드에 다른 파일에 있는 더하기 메소드를 호출하고 있을 경우 컴파일 과정을 통해 두개의 목적 코드들이 따로따로 생성된 상태이다. 따라서 이 두개의 목적 코드들을 링크 시켜서 연결시키고 난 이후에야 완벽한 실행 파일로 만들어진다. 

 

 

 

목적 파일 VS 실행 파일

  • 목적 파일과 실행 파일은 둘 다 기계어로 이루어진 파일이다.
  • 하지만, 목적 파일과 실행 파일은 다르다.
  • 목적 파일은 링킹(linking)을 거친 이후에야 실행 파일이 된다.
728x90
반응형
LIST