编译器与解释器
编译器/解释器:高级语言与机器之间的翻译官 都是将代码翻译成机器可以执行的二进制机器码,只不过在运行原理和翻译过程有所不同而已。
二者之间的区别
编译器:先整体编译再执行 解释器:边解释边执行 用一个通俗的例子进行比喻:我们去饭馆吃饭,点了八菜一汤。 编译器的方式就是厨师把所有的菜给你全做好了,一起给你端上来,至于你在哪吃,怎么吃,随便。 而解释器的方式就是厨师做好一个菜给你上一个菜,你就吃这个菜,而且必须在饭店里吃。
python解释器种类
Python有好几种版本的解释器: CPython:官方版本的解释器。 这个解释器是用C语言开发的,所以叫CPython。 CPython是使用最广的Python解释器。我们通常说的、下载的、讨论的、使用的都是这个解释器。 Ipython:基于CPython之上的一个交互式解释器,在交互方式上有所增强,执行Python代码的功能和CPython是完全一样的。 CPython用>>>作为提示符,而IPython用In[序号]:作为提示符。 PyPy:一个追求执行速度的Python解释器。 采用JIT技术,对Python代码进行动态编译(注意,不是解释),可以显著提高Python代码的执行速度。绝大部分CPython代码都可以在PyPy下运行,但还是有一些不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。 Jython:运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。 IronPython:和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
python的运行机制
Python作为动态解释性语言,其运行机制可参考下
都说解释器慢,Python也有想办法提高一下运行速度的,那就是使用pyc文件。这点参考了JAVA的字节码做法,但并不完全类同。 我们编写的代码一般都会保存在以*.py为后缀*的文件中。在执行程序时,解释器逐行读取源代码并逐行解释运行。每执行一次,就重复一次这个过程,这其中耗费了大量的重复性的解释工作。为了减少这一重复性的解释工作,Python引入了pyc文件,pyc文件是将py文件的解释结果保存下来的文件,这样,下次再运行的时候就不用再解释了,直接使用pyc文件就可以了,这无疑大大提高了程序运行速度。
|