Bytecode CPU如何执行解释的语言代码?

Bytecode CPU如何执行解释的语言代码?,bytecode,interpreter,jit,microprocessors,interpreted-language,Bytecode,Interpreter,Jit,Microprocessors,Interpreted Language,我试图理解CPU是如何执行解释代码的 据我所知,在编译语言中,代码被转换成以CPU为目标的二进制代码,当二进制代码被执行时,它被加载到内存中,CPU程序计数器(PC)指向下一条指令,然后CPU加载并执行这些指令。但是,在解释语言的情况下,这是如何发生的呢?我读了很多博客文章,所以每个人都有不同的答案 有人说解释器会将字节码实时转换成机器码,有人说CPU执行解释器,解释器知道如何执行字节码。但是,当每一条指令都必须由CPU执行时,CPU是如何得到要执行的指令的呢 如果解释器实时转换字节码是真的,那

我试图理解CPU是如何执行解释代码的

据我所知,在编译语言中,代码被转换成以CPU为目标的二进制代码,当二进制代码被执行时,它被加载到内存中,CPU程序计数器(PC)指向下一条指令,然后CPU加载并执行这些指令。但是,在解释语言的情况下,这是如何发生的呢?我读了很多博客文章,所以每个人都有不同的答案

有人说解释器会将字节码实时转换成机器码,有人说CPU执行解释器,解释器知道如何执行字节码。但是,当每一条指令都必须由CPU执行时,CPU是如何得到要执行的指令的呢

如果解释器实时转换字节码是真的,那么程序计数器如何知道下一条指令是什么,指令是否可以动态加载到内存中以便CPU执行,或者在CPU开始执行之前需要提前加载整个程序代码根本不是由CPU直接执行的。相反,它的指令(无论是语言语句还是一些中间代码)由另一个程序解析和解释。另一个程序可以通过编译代码直接在CPU上运行。所以执行类似于脚本->解释器->CPU。但是还有许多其他的变体,比如JIT,在JIT中,程序将中间(一小部分或全部)代码转换为CPU指令,由CPU直接执行。