解释器和CPU之间有什么关系?

时间:2015-11-17 11:48:10

标签: interpreter bytecode vm-implementation

我已经读过解释器(VM)是一个执行代码的软件。我还读过CPU执行指令。两次执行有什么区别? VM不会将字节代码转换为机器代码。它到底做了什么?

1 个答案:

答案 0 :(得分:1)

  

VM不会将字节代码转换为机器代码。

虚拟机会将字节码转换为机器码。这正是它的主要目的,因为它允许您在虚拟机所在的每个操作系统和体系结构上执行程序,而无需重新编译它。此外,它还可以执行其他操作,例如安全控制等。

修改

我更习惯于Java世界,虚拟机实际上将字节码编译成CPU指令,以加速(很多)事情。然而,在Python中,实现这些指令的代码似乎是解释器的一部分,它只是读取您的程序并在内部执行所需的操作。我建议你阅读你的链接,这似乎是在解释。另外,我已经读过Python正在引入JIT编译器的地方。