문제

나는 Cpython의 맥락에서 "바이트 코드 통역사"의 개념을 실제로 얻지 못합니다. 누군가가 전체 사진에 대해 약간의 빛을 흘릴 수 있습니까?

CPYTHON이 PYC 파일을 컴파일하고 실행한다는 것을 의미합니까 (ByteCode 파일?). 그렇다면 PY 파일을 PYC 파일로 컴파일하는 것은 무엇입니까? 그리고 Jython은 Cpython과 어떻게 다릅니다 (다른 언어로 구현되는 제외).

또한 파이썬이 C ++ 해석이라는 어딘가에 읽습니다. 이 올바른지? 그리고 그게 무슨 뜻입니까?

나는 여전히 Python을 처음 접 했으므로 멍청한 질문을한다면 용서하십시오 ... 정말 감사합니다!

도움이 되었습니까?

해결책

Cpython은 C에서 Python의 구현입니다. 첫 번째 구현이며 여전히 사람들이 Python에 대해 이야기 할 때 의미하는 주요 구현입니다. .py 파일을 .pyc 파일로 컴파일합니다. .pyc 파일에는 바이트 코드가 포함되어 있습니다. CPYTHON 구현은 또한 바이트 코드를 해석합니다. cpython은 C ++로 작성되지 않았으며 C입니다.

.py에서 .pyc까지의 편집은 필요에 따라 투명하게 발생합니다. .py 파일을 실행하면 필요한 경우 먼저 .pyc 파일로 컴파일되면 .pyc 파일이 해석됩니다.

Jython은 (C 대신 Java로 구현되는 것 외에도) .py 파일을 .class 파일로 컴파일하여 JVM에서 실행할 수 있기 때문에 다릅니다.

다른 팁

첫째 : Cpython이 바이트 코드 통역사라는 사실은 Python의 사용자로서 당신에게 중요하지 않아야합니다. 계속해서 코드를 작성하고 어떻게 행동으로 바뀌는 지 걱정하지 마십시오.

따라서 귀하의 질문에 답하고 호기심을 충족시키기 위해 다음은 다음과 같습니다. Cpython은 Python 소스 코드를 읽고 .pyc 파일에 저장된 Python Byte 코드로 컴파일합니다. 그런 다음 바이트 코드 통역사를 사용하여 해당 코드를 실행합니다. 이 디자인은 Python의 구문 분석을 실행과 분리하여 통역사의 두 부분을 더 간단하게 할 수 있습니다.

Jython은 전면 절반에 불과합니다. Python 소스를 읽고 Java Bytecodes를 출력하여 JVM에 의해 해석됩니다. 그것은 두 가지 주목할만한 차이점을 가진 cpython과 동일한 아키텍처입니다. 하나 : Java Bytecode는 표준화되고 문서화되며 Cpython 바이트 코드는 Python 내부로 간주되며 언제든지 변경할 수 있습니다. 두 사람 : JVM은 Cpython 통역사보다 훨씬 더 복잡합니다. JVM에는 세계에서 가장 진보 된 JIT 엔진 중 하나가 있으며 Cpython 통역사는 매우 간단합니다.

Cpython은 바이트 코드 컴파일러 및 통역사 (가상 머신)입니다.

기존 사전 컴파일러 파일 (.pyc)이 없으면 자동으로 감지하고 코드를 컴파일하고 저장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top