본문 바로가기

JAVA/Theory

컴파일 & 인터프리트

컴파일 방식의 프로그램 와 자바 프로그램의 차이







1. 컴파일 방식 


Preprocess(전처리):

  소스파일 내부에 있는 전처리 명령을 수행하는 과정입니다전처리 명령은 소스파일 내부에 ‘#’으로 시작되는 명령어들이며 이명령어들은 Preprocessor(전처리기)가 이 명령어들을수행하게 됩니다.

  전처리 명령어는 주로 소스파일을 컴파일 하기 전에 어떤형태로 컴파일 할지 결정하거나소스코드의 가동성을 높이는 등의 역할을 수행하게 됩니다.


Compile(컴파일):

  소스파일을 컴파일러를 이용해 기계어로 번역하는 과정입니다.

  번역하는 과정에서 C언어문법에 맞지 않거나 표준을 따르지 않으면컴파일 에러나 경고를 발생시킵니다아무런 문제 없이 과정을 마치게 되면 기계어로 번역된 ‘*.obj’파일을생성합니다.


Link(링크):

  컴파일 과정에서 생성된 ‘*.obj’파일과 소스코드에서 사용되는 함수들이 들어있는 ‘*.lib’파일을이용하여 실행 가능한 파일을 만드는 과정입니다.

  실행파일을 만드는과정에서 소스코드가 사용하는 변수나 함수가 주어진 파일에 존재 하지 않을 경우 이 과정에서 오류가 있다고 알려줍니다아무런 문제없이 과정을 마치게 되면 실행이 가능한 ‘*.exe’파일을생성합니다.





2. 인터프리터 방식








일단, 인터프리팅은 프로그램 소스코드가 목적프로그램, 또는 바이너리 파일로 변환되는 번역과정이 일어나지 않는다는 것입니다.


프로그램 소스코드가 바로 한줄한줄 실행되어 기계어로 미리 번역되어서 저장(바이너리 파일)되는 절차가 생략되어 있는 것입니다.







■ 개념이해 필요

 

1. C나 다른 프로그램에서는

- 컴파일 하고 나면 실행 가능한 파일이 됨.

- OS에 의존적이다.

 

2. JAVA에서는

- 컴파일 하면 바이트코드로 변환

- JVM이라는 런타임모듈 위에서만 실행 가능함.

- JVM에서는 interpreter언어로 다시 번역을 해서 실행 처리 됨

 

3. 따라서 JAVA의 컴파일은 다른 언어의 컴파일과 같다고 보면 안됨.

- 그래서 어떤 OS냐에 따라 재 컴파일을 하는게 아니라,

  거기에 맞는 JVM만 깔면 컴파일 다시 하지않고도 사용 가능함

  (자바 버젼에 따라 메소드 사용불가 일 수는 있음)



반응형

'JAVA > Theory' 카테고리의 다른 글

CPU Scheduling [Priority & Round Robin]  (0) 2015.02.25
Context Switch  (0) 2015.02.25
CPU Scheduling [Dispatcher & Time Slice]  (0) 2015.02.25
Process 와 Thread  (0) 2015.02.25
JDK (JRE [API + JVM] + 개발 유틸리티 )  (0) 2015.02.06