Build & Compile

Junghyun Park·2021년 7월 7일
0

참고 사이트
https://st-lab.tistory.com/176

Build

정의

소스코드는 빌드라는 과정을 통해 실행파일(기계어)로 전환되는데 이러한 과정을 Build라 함

Build Process

빌드의 3가지 방식

  1. Compile: 소스 코드 전체를 기계어로 번역
    (1) 전처리: 소스 코드의 메인이 실행되기 전 사전 준비 과정/ 소스코드에 포함된 매크로나 지시자 같은 것을 포함시켜줌
    (2) 컴파일: 직접적인 번역 역할을 의미(바로 기계어가 아닌 저수준 언어인 어셈블리어로 번역)/ 컴파일 하는 프로그램을 컴파일러라고 함
    (3) 어셈블: 어셈블리어를 기계어로 번역/ 이렇게 번역된 파일을 Object 파일이라고 함
    (4) 링크: 번역된 각 파일들을 하나로 연결하는 과정 (필요한 라이브러리들을 연결하고, 최종적인 하나의 실행파일로 만들어 줌)
  2. Interpreted : 소스 코드를 한 줄 씩 번역하며 실행
  3. Hybrid: 소스 코드 전체를 중간코드(바이트 코드)로 번역한 뒤, 가상머신(VM)에서 한 줄씩 실행

컴파일 언어

: C, C++, Go

컴파일 언어의 장점

: 필드가 완료된 실행가능한 파일은 실행속도가 빠름

컴파일 언어의 단점

: 프로그램 수정해야할 경우, 처음부터 빌드를 다시 거쳐야 하기 때문에 대규모 프로그램에서 생산성이 떨어짐
: 플랫폼(OS)에 매우 의존적

인터프리트 언어

: Object 파일 생성 없이 바로 실행
: Javascript, Python, Ruby
: 언어마다 번역해주는 프로그램(환경)을 interpreter라고 함

인터프리트 타입 장점

: 컴파일 없이 바로 실행하므로, 디버깅에 유리, 개발속도 유리
: 플롯폼에서 지원하는 인터프리터만 설치하면 플랫폼에 독립적

인터프리트 타입 단점

: 빌드 되어 있는 컴파일 언어 프로그램보다 실행 속도 느림 => 최근에는 하드웨어 속도 빨라져 단점이 많이 없어짐
: 코드 열면 다 보이므로 보안에 좋지 않음

하이브리드 언어

: 소스코드를 바이트코드(bytecode, 일종의 중간언어로서 가상머신 전용 기계어)로 변환하고, VM이라는 프로그램에 의해 기계어로 바꿔줌
: 가장대표적인 VM이 바로 JVM임
: Java

하이브리드언어 장점

: 각 플랫폼에서 지원하는 가상머신만 있으면 플랫폼에 독립적

하이브리드 언어 단점

: 컴파일 언어처럼 하드웨어를 직접 제어하는 작업은 불가능

유념할 점

언어는 언어일 뿐 빌드 방식은 자유롭게 선택할 수 있는 수단임!

예를들어, C언어도 전용 인터프리터를 사용하여 인터프리트 타입으로 사용가능

profile
21c Carpenter

0개의 댓글