Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python虚拟机是否向CPU发送机器代码以进行处理,或者PVM是否执行字节代码并只向CPU发送结果?_Python_Python 3.x_Virtual Machine_Interpreter_Pvm - Fatal编程技术网

python虚拟机是否向CPU发送机器代码以进行处理,或者PVM是否执行字节代码并只向CPU发送结果?

python虚拟机是否向CPU发送机器代码以进行处理,或者PVM是否执行字节代码并只向CPU发送结果?,python,python-3.x,virtual-machine,interpreter,pvm,Python,Python 3.x,Virtual Machine,Interpreter,Pvm,我知道python程序的执行流程,但最后一步很混乱,在任何博客中都没有明确的说明 假设我们有一个简单的乐趣来添加2个数字 流程1: 步骤1:将源代码转换为字节码 步骤2:python虚拟机PVM是否将字节码转换为机器码并发送给计算机CPU进行处理,CPU计算并发送指令以在屏幕上显示输出 如果是这样,为什么我们需要PVM?我们可以直接将soruce转换为机器代码并发送到CPU,对吗?为什么添加额外的PVM层只是为了获得解释语言的好处,比如可移植性和平台独立性 或者是下面的流程对吗 流程2: 步骤1

我知道python程序的执行流程,但最后一步很混乱,在任何博客中都没有明确的说明

假设我们有一个简单的乐趣来添加2个数字

流程1:

步骤1:将源代码转换为字节码

步骤2:python虚拟机PVM是否将字节码转换为机器码并发送给计算机CPU进行处理,CPU计算并发送指令以在屏幕上显示输出

如果是这样,为什么我们需要PVM?我们可以直接将soruce转换为机器代码并发送到CPU,对吗?为什么添加额外的PVM层只是为了获得解释语言的好处,比如可移植性和平台独立性

或者是下面的流程对吗

流程2: 步骤1:将源代码转换为字节码

步骤2:PVM是否执行字节码,直接将输出发送到CPU,在屏幕上显示它
这里的机器代码不是指令,只是加上2个数字的输出

哪种流量是正确的流量1或流量2?我在这个
[stackoverflow link][1]
中看到了一个类似的问题,但没有人给出PCM和CPU如何交互的完整答案


youtube上此链接的评论部分讨论了相同的问题,每个人似乎都对PVM和CPU之间的交互感到困惑。希望有人能简单解释一下PVM和CPU之间的交互请不要在这两个链接中给出相同的答案

标准Python实现没有把任何东西转换成机器代码。它包含实现每个可能字节码指令的机器代码子程序(由C源代码编译);根据Python源代码生成的字节码,这些简单地链接在一起。@jasonharper我的问题很简单,PVM和CPU之间发生了什么通信?PVM是只向CPU发送结果,还是向CPU发送机器代码指令,以便CPU进行处理计算机中发生的一切都是在CPU上执行机器代码的结果。PVM并不是物理上与CPU分离的东西,它只是一个在CPU上运行的普通程序。PVM与任何其他应用程序之间的唯一区别在于,它使用Python字节码来指导它所做的事情,而不是遵循自包含的执行路径。@jasonharper this till没有回答我的问题,PCM是执行字节码还是逐行将字节码翻译成机器码并发送给CPU以便CPU执行?