
1. 컴파일 방식
Preprocess(전처리):
소스파일 내부에 있는 전처리 명령을 수행하는 과정입니다. 전처리 명령은 소스파일 내부에 ‘#’으로 시작되는 명령어들이며 이명령어들은 Preprocessor(전처리기)가 이 명령어들을수행하게 됩니다.
전처리 명령어는 주로 소스파일을 컴파일 하기 전에 어떤형태로 컴파일 할지 결정하거나, 소스코드의 가동성을 높이는 등의 역할을 수행하게 됩니다.
Compile(컴파일):
소스파일을 컴파일러를 이용해 기계어로 번역하는 과정입니다.
번역하는 과정에서 C언어문법에 맞지 않거나 표준을 따르지 않으면, 컴파일 에러나 경고를 발생시킵니다. 아무런 문제 없이 과정을 마치게 되면 기계어로 번역된 ‘*.obj’파일을생성합니다.
Link(링크):
컴파일 과정에서 생성된 ‘*.obj’파일과 소스코드에서 사용되는 함수들이 들어있는 ‘*.lib’파일을이용하여 실행 가능한 파일을 만드는 과정입니다.
실행파일을 만드는과정에서 소스코드가 사용하는 변수나 함수가 주어진 파일에 존재 하지 않을 경우 이 과정에서 오류가 있다고 알려줍니다. 아무런 문제없이 과정을 마치게 되면 실행이 가능한 ‘*.exe’파일을생성합니다.
[출처] 컴파일과정 (C,C++ 정보 공유) |작성자 째구
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 |