今天小编给大家分享一下python虚拟机解释器及运行过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
说到解释器,大家之前多少都听过解释性语言和编译性语言。首先,不管是这二位其中的谁,源代码对于计算机来说,都是读不懂的,计算机只认识二进制指令。所以,想让程序被执行,那么自然要先把源代码转化为二进制指令,也就是机器码。
那么,在什么时候进行转换呢?
有的语言要求必须提前把代码一次性转换完毕,这种就是编译型语言,用的转换工具就叫编译器,比如C语言、C++。有的语言则可以一边执行一边转化,用到哪里了就转哪里,这种就是解释性语言,用的转化工具叫解释器,比如python、javascript。
java比较特殊,既有编译又有解释。但是编译并没有直接编译成机器码,而是编译成字节码,然后再拿到虚拟机中执行。这种设计初衷是在跨平台的同时兼顾执行效率,这里就不展开了。
ok,上面就是铺垫了。
python解释器是一种让其他程序运行起来的程序,编写的python代码必须在解释器中运行,这东东已经在我们安装python的时候都装上了。
所以,现在我print(hello world)
,就可以运行了,控制台可以看到文本的输出。
上面的一行代码虽然简单,但是python运行它还是经过了两步操作:
将源代码编译成为“字节码”转发“字节码”到“虚拟机”
字节码编译
可以理解为翻译,把print(hello world)
翻译成字节码,字节码会保存在后缀名是.pyc
的文件里,这文件其实就是编译后的.py
源代码。
这些字节码相较于源代码,运行起来速度要快得多。为什么?
因为在下一次运行程序时,如果在上次保存了字节码之后没有修改过源代码了,Python就会加载.pyc
文件并且跳过编译这个步骤。
当必须要重新编译时,python会自动检查源文件和字节码文件的时间戳,如果你又保存了源代码,下次程序运行时,字节码将自动重新创建。
Python Virtual Machine,简写为PVM,当有字节码文件之后,就会被发送到PVM里来执行。
这里注意,PVM并不是指的一个独立的程序,是不需要安装的。可以把PVM理解为Python的运行引擎,是一个迭代运行字节码指令的大循环,一个个的完成操作,直到结束。
从技术角度看,PVM才是“解释器”的最后一步。
大家都知道,python的缺点是运行慢。但其实这里的慢也只是相对而言,跟C和C++这类编译性语言相比,确实执行速度还不够快。
为什么?
上述也提到了python会把源代码转成字节码,然后再将字节码解释出来。但是为了更好的跨平台性,这里的字节码是一种跟平台无关的格式,所以并不是底层的二进制代码。到目前为止,只要不是对运行速度有严苛要求的领域,比如数值计算或动画这种,经常需要核心处理单元至少以C语言的速度执行,绝大多数的应用,python还是可以胜任的。
相比于缺点,python带来开发效率的提升,相信也是很多人喜爱的的重要因素。
以上就是“python虚拟机解释器及运行过程是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。