sin prisa pero sin pausa

[JAVA] JVM(Java Virtual Machine) 본문

비전공 거북이 표류기

[JAVA] JVM(Java Virtual Machine)

EstherDmt 2021. 3. 17. 22:56
반응형

출처 : https://javatutorial.net/jvm-explained

 

자바는 사람이 읽을 수 있는 언어(source code)로 되어있기 때문에 컴퓨터 언어(byte code)로 컴파일을 해줘야 한다. 

각 운영체제에서의 개발 언어들은 각자 다른데, 이를 위해 JVM은 운영체제에 붙어있다가

자바 프로그램을 현지 운영체제 언어로 바꿔주는(Interpreter) 역할을 한다. 

 

다른 언어들도 대부분 컴파일의 단계까지는 실행이 되지만 

자바만 JVM라는 Interpreter가 실행된다. 

(ex. C언어는 운영체제에 따라 코드 작성 방법이 다르다)

 

그렇다면 InterpreterCompiler의 차이점은?

 

출처 : https://www.programiz.com/article/difference-compiler-interpreter

Interpreter(통역)

- 프로그램을 그 때 그 때 한 줄 한 줄 해석한다. 

- 비교적으로 소스코드를 분석하는 데에 시간이 적게 걸리지만, 전반적인 실행 시간은 compiler에 비해 느리다. 

- 중간 개체 코드가 형성되지 않으므로, 메모리 효율적이다. 

- JavaScript, Python, Ruby와 같은 프로그래밍 언어들이 interpreter를 사용한다. 

 

Compiler(번역)

- 프로그램을 전체적으로 스캔하고 한 번에 기계어로 번역한다. 

- 비교적으로 소스코드를 분석하는 데에 시간이 많이 걸리지만, 전반적인 실행시간은 Interpreter에 비해 빠르다. 

- 추가적으로 연결이 필요한 중간 객체 코드를 형성하므로 더 많은 메모리가 필요하다. 

- C, C++, Java와 같은 언어들이 compiler를 사용한다. 

 

반응형