Así que últimamente encontré una explicación para el intérprete y compilador de Python (CPython específicamente).
Por favor corrígeme si estoy equivocado. Sólo quiero estar seguro de que entiendo estos conceptos específicos.
Entonces, ¿CPython se compila (en código de bytes) y luego se interpreta (en el PVM)? ¿Y qué hace exactamente el PVM? ¿Lee el código de bytes línea por línea y traduce cada uno a instrucciones binarias que se pueden ejecutar en una computadora específica? ¿Significa esto que una computadora basada en un procesador Intel necesita un PVM diferente de una computadora basada en AMD?
if/else como "si la instrucción actual es esta, haga esto; si la instrucción es esta, haga otra cosa", y así sucesivamente. Las instrucciones no se traducen a binario, por eso se llama intérprete .if/else para decidir qué instrucción está mirando. Por ejemplo: curr_byte = read_byte() if curr_byte == 0x00: # Parse instruction with no arguments curr_instruction = DO_THING_A; args = NULL; elif curr_byte == 0x01: another_byte = read_byte() if another_byte == 0x00: # Parse a two-byte instruction curr_instruction = DO_THING_B; args = NULL; else: # Parse a one-byte instruction # with one argument curr_instruction = DO_THING_C; args = another_byte >> 1; # or whatever elif curr_byte == ...: ... # go on and on and on