Im learning python and although i don't know java i have read some things about JVM For what i know (and have read in other questions here in SO): 1.- An interpreter can execute directly source code (for example python or Java code) but, because source code is not machine code, we need an "execution environment" to run this, so here enters a VM (like PVM and JVM); so, the source code is something like "machine code" for this VM So, in summary, here the interpreter is a package that contains only the VM. The execution is at run-time But this is inefficient because the exection is slower than compiled code execution and the optimization is poor So, in order to improve this we can have compilation in the equation 2.- So, to improve performance we can have compilation (AOT) that gives Bytecode as output and then the interpreter would execute that bytecode at run-time. So, again, we must have a VM in order to understand this Bytecode and execute it. In summary, here the interpreter is a package that contains an AOT compiler and the VM (like CPython), but the AOT compiler can exist separated from the VM (like Jython for example) and this Bytecode is targeted to an interpreter (like the JVM in this example) But then we have the AOT compiler combined with a JIT compiler 3.-So, (i guess) when we combine an AOT and a JIT compiler we improve even better the performance, now we have source code (like python or java code), compiled it AOT to Bytecode, and then, because now we have a JIT compiler, this JIT compiler generates machine code to an especific VM so the VM now doesnt have to execute Bytecode, the VM now can execute machine code targeted to that VM, and this of course, improves optimization. In summary, the interpreter here is a package that can contain the AOT compiler, the JIT compiler and the VM I have two questions, first, are the 3 statements here correct? and then, besides these 3 things: Interpreter: VM Interpreter: AOT compiler + VM Interpreter:AOT compiler + JIT compiler + VM What other combinations can exist? Thanks in advance! i would really appreciate your answers and your time! Continue reading...