[객체지향 프로그래밍] 02. 프로그래밍 언어가 실행되는 과정
인터프리터와 컴파일러
두 가지모두 고급언어(JAVA, C, C++, Python…)를 기계가 이해할 수 있는 언어로 변경하는 일을한다.
차이점은 컴파일러는 코드 전체에대해 한번에 실행하고 인터프리터는 한 줄씩 실행한다는 특징이 있다. 그렇기 때문에 실행이 시작되는 속도는 인터프리터가 빠르지만 전체 실행속도는 컴파일러가 더 빠르다.
Python 코드가 실행되는 과정
Cython
python 코드를 바이트 코드로 변환한다.
인터프리터
변환된 코드를 실행단위마다 인터프리터에 의해 실행된다.
JAVA 코드가 실행되는 과정
.java → .class
우리가 .java에 구현한 코드는 컴파일러에 의해 .class의 바이트 코드로 변환된다.
JVM
이때 이 코드가 실행되는 os에 맞게 변환되어야하는데 JVM이 그 역할을한다. 그 외에도 메모리를 할당하고, garbage collection을 사용하여 메모리를 관리한다.