본문 바로가기

프로그램 경험/프로그램 정보

컴파일러, 컴파일, 인터프리터, 빌드

  1. 컴파일러(compiler)
    • 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말한다.
    • 고급 명령어들을 직접 기계어로 번역한다.
    • 컴파일러가 실행되는 컴퓨터나 운영체제가 컴파일러의 목적코드가 실행될 컴퓨터나 운영체제와 같은 경우 네이티브 컴파일러(native compiler)라고 한다.
    • 다른 컴퓨터나 운영체제에서 실행되도록 하는 경우는 크로스 컴파일러(cross compiler)라고 한다.
    • 가상 머신에서 동작할 프로그램을 만드는 컴파일러는 가상 머신을 위해 제작된 바이트코드 형태의 기계어가 되므로 바이트코드 컴파일러라고 부른다.

  2. 컴파일(compile)
    • 원래의 문서를 소스 코드 혹은 원시 코드라고 부르고, 출력된 문서를 목적 코드라고 부른다.
    • 목적 코드는 주로 다른 프로그램이나 하드웨어가 처리하기에 용이한 형태로 출력되지만 사람이 읽을 수 있는 문서 파일이나 그림 파일 등으로 올기는 경우도 있다.
    • 원시 코드에서 목적 코드로 옮기는 과정을 컴파일이라고 한다.

  3. 인터프리터(interpreter)
    • 고급언어로 작성된 원시코드 명령어들을 한번에 한줄씩 읽어들여서 실행하는 프로그램이다.
    • 고급 명령어들을 중간 형태로 번역한 다음, 그것을 실행한다.

  4. 빌드(build)
    • 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다.
    • 컴파일된 목적 코드를 라이브러리들과 링크시키고 실행파일로 만든다.

정리 하자면 소스코드를 코딩하고 컴파일을 하면 컴파일러가 명령어들을 기계어로 만들어 목적코드를 생성한다.
그리고 빌드하면 목적코드를 가지고 실행파일로 만든다. 

출처 : http://ko.wikipedia.org/wiki