본문 바로가기
Knowledge/Basic

컴파일(Compile)이란 무엇인가?

by VIR&US 2023. 7. 8.
반응형

컴파일(Compile)이란  사람이 읽을 수 있는 코드(예: C, C++ 또는 Verilog와 같은 프로그래밍 언어)로 작성된 소스 코드를 컴퓨터가 이해하고 실행할 수 있는 기계어로 변환하는 과정을 말합니다. 이 과정은 컴파일러라는 특별한 프로그램에 의해 수행됩니다. 컴파일은 프로그래밍에서 중요한 단계로, 소스 코드의 문법 오류를 찾아내고, 실행 가능한 프로그램을 생성하는 역할을 합니다. 컴파일의 목적은 사람이 읽고 쓰기 쉬운 소스 코드를 컴퓨터가 직접 처리하고 실행할 수 있는 실행 파일 또는 바이너리라고 하는 기계 판독 가능 형식으로 변환하는 것입니다.

 

컴파일의 과정

컴파일 과정은 크게 네 단계로 이루어집니다.

  1. 전처리(Preprocessing): 이 단계에서는 소스 코드에서 주석을 제거하고, 매크로를 확장하며, 헤더 파일을 포함시키는 등의 작업을 수행합니다.
  2. 컴파일(Compilation): 전처리된 소스 코드는 이제 컴파일러에 의해 저수준 언어로 변환됩니다. C/C++의 경우, 이 단계에서 소스 코드는 어셈블리 언어로 변환됩니다.
  3. 어셈블(Assembly): 어셈블리 언어로 작성된 코드는 이제 기계어로 변환됩니다. 이 단계에서 생성된 출력은 오브젝트 파일이라고 합니다.
  4. 링킹(Linking): 여러 개의 오브젝트 파일과 라이브러리를 결합하여 하나의 실행 가능한 파일을 생성합니다. 이 단계에서는 외부 함수와 변수의 참조를 해결합니다.

 

컴파일러와 인터프리터의 차이

컴파일러와 인터프리터는 모두 소스 코드를 기계어로 변환하는 역할을 하지만, 그 방식에는 차이가 있습니다. 컴파일러는 소스 코드 전체를 한 번에 기계어로 변환한 후 실행하는 반면, 인터프리터는 소스 코드를 한 줄씩 읽어가며 즉시 실행합니다. 따라서 컴파일러는 실행 전에 모든 오류를 찾아내지만, 인터프리터는 실행 중에 오류를 발견합니다.

 

컴파일의 중요성

컴파일은 프로그래밍에서 중요한 역할을 합니다. 컴파일 과정을 통해 프로그래머는 소스 코드에 포함된 문법 오류나 논리 오류를 미리 발견하고 수정할 수 있습니다. 또한, 컴파일러는 최적화 과정을 통해 프로그램의 실행 속도를 향상시키고 메모리 사용량을 줄일 수 있습니다.

728x90
반응형

'Knowledge > Basic' 카테고리의 다른 글

bps란?  (0) 2023.07.17
Full Duplex(전이중), Half Duplex(반이중), Simplex(단방향)  (0) 2023.07.17
DRAM이란? (2) Generation, Structure  (0) 2023.07.05
DRAM이란? (1) 기본동작 Read, Write, Refresh  (0) 2023.07.05
AND Gate  (0) 2023.07.05