5-编译器与解释器

简介: Python

编译器与解释器
编译器/解释器:高级语言与机器之间的翻译官
都是将代码翻译成机器可以执行的二进制机器码,只不过在运行原理和翻译过程有不同而已。
那么两者有什么区别呢?
编译器:先整体编译再执行
解释器:边解释边执行
用一个通俗的例子进行比喻:我们去饭馆吃饭,点了八菜一汤。编译器的方式就是厨师把所有的菜给你全做好了,一起给你端上来,至于你在哪吃,怎么吃,随便。解释器的方式就是厨师做好一个菜给你上一个菜,你就吃这个菜,而且必须在饭店里吃。
image.png

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作为动态解释性语言,其运行机制可参考下
image.png

都说解释器慢,Python也有想办法提高一下运行速度的,那就是使用pyc文件。这点参考了JAVA的字节码做法,但并不完全类同。
我们编写的代码一般都会保存在以.py为后缀的文件中。在执行程序时,解释器逐行读取源代码并逐行解释运行。每执行一次,就重复一次这个过程,这其中耗费了大量的重复性的解释工作。为了减少这一重复性的解释工作,Python引入了pyc文件,pyc文件是将py文件的解释结果保存下来的文件,这样,下次再运行的时候就不用再解释了,直接使用pyc文件就可以了,这无疑大大提高了程序运行速度。

相关文章
|
IDE 编译器 开发工具
编程前的准备:编译器的安装
编程前的准备:编译器的安装
58 0
|
6天前
|
Unix 编译器 C语言
C 编译器
C 编译器。
19 4
|
7月前
|
Java 编译器 程序员
我们竟然都中了编译器施的“迷魂药“
相信在座各位都中过编译器施的”迷魂药”,表面你以为你写的程序按你的意志在顺序执行着,看了看程序执行结果,没错确实是自己期望的结果。偷偷告诉你,这都是编译器给你造成的幻觉。编译器可不会告诉你,他为了提高你写的程序性能,下了多少功夫。编译器:下点迷魂药不过分吧?
|
7月前
|
存储 自然语言处理 算法
|
前端开发 IDE 编译器
2023-5-20-各种编译器的全面学习
2023-5-20-各种编译器的全面学习
239 0
|
自然语言处理 IDE 编译器
【C语言】--编译及编译器
【C语言】--编译及编译器
135 0
|
编译器 程序员 C语言
C 语言标准及编译器介绍
今天给大家介绍一下C语言标准及其由来
379 0
|
Java 编译器 C语言
python的编译器与解释器
python的编译器与解释器
185 0
python的编译器与解释器
|
前端开发 Java 编译器
JVM解释器与JIT编译器如何并存?
JVM解释器与JIT编译器如何并存?
144 0
|
编译器
编译器的不同,导致运行结果不一样
编译器的不同,导致运行结果不一样
148 0