
고수준 언어를 통해 작성한 소스 코드를 기계어로 번역해서 실행 파일을 만들어내는 과정이다.
빌드의 방식은 크게 세가지로 분류 가능하다.
Type | Process |
|---|---|
Compile | 소스코드 전체를 기계어로 번역한다. |
Interpreted | 소스코드를 한 줄씩 읽으면서 번역하며 실행한다. |
Hybrid | 소스코드 전체를 중간 코드 (바이트 코드)로 번역한 다음 가상머신 (VM) 에서 한 줄씩 실행한다. |
소스코드 전체를 기계어로 번역하여 실행 파일을 만들어내는 빌드 방식
C, C++, Java, Go 등이 컴파일 방식을 채택하는 언어이다.
컴파일 타입의 언어는 총 4가지 단계를 거쳐 빌드를 진행한다.
# 으로 시작하는 구문)을 미리 처리해주는 과정.i 파일로 변환.i 파일이 .s 파일로 변환.s 파일을 통해 프로그램 내부가 어떻게 작동하는지 확인하거나 하드웨어의 직접적인 조작 및 특수 프로세서 명령어 접근 작업을 진행할 수 있음.s 파일이 .o 파일 (목적 파일 (Object File)) 로 변환.exe 파일 또는 .dll / .lib (라이브러리 파일) 을 생성
소스코드를 한 줄 단위로 해석하면서 즉시 실행하는 방식
자바스크립트(JavaScript), 파이썬(Python), 루비(Ruby) 등이 대표적
컴파일 타입과의 가장 큰 차이점은 목적 파일 (Object File) 을 생성하지 않는다는 것
각 운영체제에 맞는 해당 단어의 인터프리터 (interpreter) 만 설치하면 어떤 운영체제에서라도 동일한 결과를 얻을 수 있음
컴파일 타입과 인터프리트 타입을 혼합한 방식
각각의 단점을 상호 보완하여 만들어졌으며 바이트 코드 언어 (Byte Code Language) 라고도 함
자바(Java) 가 대표적
소스코드를 가상머신이 이해할 수 있는 바이트 코드로 컴파일 (컴파일 타입)
가상머신이 해당 바이트 코드를 해석하여 각 운영체제에 맞게 명령어를 해석하고 동작 (인터프리트 타입)
가상머신이 인터프리터의 역할을 하는 것
프로그래밍 언어와 빌드 과정 [Build Process]
빌드란 무언인가? / 빌드의 과정 / 컴파일 언어와 인터프리터 언어
[C] 프로그램 실행 과정 (빌드 과정)
컴파일(Compile)에 대한 이해