그렇습니다. 컴파일 된 언어와 해석 된 언어입니다. 그렇다면 왜 우리는 이것을 일반적으로 통역 언어라고 부릅니까?
어떻게 컴파일되고 해석되는지 보라?
우선 Java 세계 출신이라면 내 대답을 더 좋아할 것이라고 말하고 싶습니다.
Java에서 소스 코드는 먼저 javac 컴파일러를 통해 바이트 코드로 변환 된 다음 JVM으로 보내 집니다 (실행 목적으로 원시 코드를 생성해야 함). 이제 Java를 컴파일 된 언어로 호출한다는 것을 보여 드리고자합니다. 소스 코드를 실제로 컴파일하고 .class 파일 (bytecode 이외)을 제공한다는 것을 알 수 있기 때문입니다 .
javac Hello.java ------->는 Hello.class 파일을 생성 합니다
java Hello --------> 실행 목적으로 바이트 코드를 JVM 으로 지정
파이썬에서도 마찬가지입니다. 즉, 먼저 소스 코드가 컴파일러를 통해 바이트 코드로 변환 된 다음 PVM으로 보내 집니다 (실행 목적으로 네이티브 코드를 생성해야 함). 이제 컴파일이 장면 뒤에서
그리고 파이썬 코드를 통해 실행할 때 일반적으로 파이썬을 해석 언어로 호출한다는 것을 보여 드리고자합니다 .
python Hello.py -------> 직접 코드를 만료시키고 코드가 구문 적으로 정확하다는 결과를 볼 수 있습니다.
@ python Hello.py 그것은 직접 실행되는 것처럼 보이지만 실제로는 먼저 해석 목적으로 원시 코드를 생성하기 위해 인터프리터가 해석하는 바이트 코드를 생성합니다.
CPython- 컴파일과 해석의 책임을집니다.
자세한 내용이 필요하면 아래 행을 살펴보십시오 .
앞에서 언급했듯이 CPython 은 소스 코드를 컴파일하지만 실제 컴파일은 cython 의 도움으로 이루어지며 CPython 의 도움으로 해석됩니다
이제 Java와 Python에서 Just-In-Time 컴파일러의 역할에 대해 조금 이야기 해 봅시다.
JVM에는 Java 인터프리터가 존재하여 바이트 코드를 한 줄씩 해석하여 실행 목적으로 원시 기계 코드를 얻지 만 인터프리터가 Java 바이트 코드를 실행하면 실행 속도가 항상 느려집니다. 그래서 해결책은 무엇입니까? 해결책은 해석 할 수있는 것보다 훨씬 더 빨리 실행될 수있는 원시 코드를 생성하는 Just-In-Time 컴파일러 입니다. 일부 JVM 공급 업체는 Java Interpreter를 사용하고 일부 JVM 은 Just-In-Time 컴파일러를 사용 합니다. 참고 : 여기를 클릭
파이썬에서 빠른 실행을 위해 인터프리터를 돌아 다니려면 CPython 대신 다른 파이썬 구현 ( PyPy )을 사용하십시오 .
PyPy를 포함한 다른 파이썬 구현을 보려면 여기 를 클릭하십시오 .