¿CPython es intérprete de bytecode?

Realmente no entiendo el concepto de “intérprete de código de bytes” en el contexto de CPython. ¿Alguien puede arrojar algo de luz sobre toda la imagen?

¿Significa que CPython comstackrá y ejecutará el archivo pyc (archivo de bytecode)? Entonces, ¿qué comstackr archivo py a archivo pyc? Y en qué se diferencia Jython de CPython (excepto que se implementan en diferentes idiomas).

También leí en alguna parte que Python es una interpretación en C ++. ¿Es esto correcto? ¿Y qué significa eso?

Todavía soy muy nuevo en Python, así que perdóname si hago las preguntas tontas … ¡Muchas gracias!

CPython es la implementación de Python en C. Es la primera implementación, y sigue siendo la principal a la que se refieren las personas cuando hablan de Python. Comstack archivos .py en archivos .pyc. Los archivos .pyc contienen códigos de bytes. La implementación de CPython también interpreta esos bytecodes. CPython no está escrito en C ++, es C.

La comstackción de .py a .pyc se realiza de forma transparente según sea necesario. Cuando ejecute un archivo .py, primero se comstackrá en un archivo .pyc si es necesario, luego se interpretará el archivo .pyc.

Jython es diferente porque (además de implementarse en Java en lugar de C) comstack archivos .py en archivos .class para que puedan ejecutarse en la JVM.

Primero: el hecho de que CPython sea un intérprete de código de bytes no debería ser importante para usted como usuario de python. Siga adelante y escriba el código, y no se preocupe por cómo se convierte en acción.

Entonces, para responder a su pregunta y satisfacer su curiosidad, esto es lo que sucede: CPython lee el código fuente de Python y lo comstack en el código de byte de Python, que se almacena en el archivo .pyc. Luego ejecuta ese código usando un intérprete de código de bytes. Este diseño separa el análisis de python de la ejecución, lo que permite que ambas partes del intérprete sean más simples.

Jython es solo la mitad frontal; lee la fuente de Python y genera códigos de byte de Java, que luego son interpretados por la JVM. Es la misma architecture que CPython, con dos diferencias notables: Una: el código de bytes de Java está estandarizado y documentado, mientras que el código de bytes de CPython se considera interno de python y puede cambiar en cualquier momento. Dos: la JVM es mucho más complicada que el intérprete de CPython. La JVM tiene uno de los motores JIT más avanzados del mundo, mientras que el intérprete CPython es bastante simple.

CPython es el comstackdor de bytecode y el intérprete (máquina virtual).

Detecta automáticamente si no existe un archivo pre-comstackdor (.pyc) existente, comstack el código y lo guarda.