python解释器到底是什么?
相信大家平时没少用过python编译器,但是要是让你解释一下Python编译器,你能说出个大概吗?今天我们就来追根溯源一下!
首先给大家介绍一下计算机编程语言
计算机编程语言主要分为三类:机器语言、汇编语言、高级语言。
其中机器语言和汇编语言属于低级语言
高级语言有编译型语言和解释型语言。两种语言对应着两种不同的翻译方式,一种是编译翻译,一种是解释翻译。
一、低级语言:
优点是执行速度快,但代码编写难度较大,可读性较差。另外,低级语言编写的程序只能在一种计算机上运行,想要运行在不同的机器上,必须重写。低级语言是早期的一种计算机编程语言,现在只在很少的特殊场景中使用了,低级语言分为以下两种:
1.机器语言:是一种计算机可以直接识别并执行的二进制指令集,无需经过翻译,每一操作码在计算机内部都有相应的电路来完成它。机器语言使用绝对地址和绝对操作码。不同的计算机都有各自的机器语言,即指令系统。从使用的角度看,机器语言是计算机最低级的,最原始的语言。
2.汇编语言:想我们写代码的时候是操作一串串的01序列,难度得有多大。为了克服机器语言的缺点为了克服机器语言的缺点,人们就用一些助记符来代替机器码。如ADD、SUB、MOV等,这就有了很大的进步,可以方便的编写,但是它仍然是对机器进行操作的,汇编语言是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
二、高级语言:
我们现在大多数人使用的语言,如C、C++、Python、Java、Matlab、LabVIEW等等,都属于高级语言,相对于低级语言,它更接近于我们平时正常的人思维,其最大的特点是编写容易,代码可读性好。实现同样的功能,使用高级语言耗时更少,程序代码量更短,更容易阅读。其次,高级语言是可移植的,也就是说,仅需稍作修改甚至不用修改,就可将一段代码运行在不同类型的计算机上。其缺点也很明显,使用高级语言编写的程序运行时,需要先将其翻译成低纸语言计算机才能运行它,在翻译过程中可能程会产生一些多余的部分,运行效率低些。另外,对硬件的可控性相对于低级语言弱些,目标代码量较大。高级语言有编译型语言和解释型语言。两种语言对应着两种不同的翻译方式,一种是编译翻译,一种是解释翻译。
1.编译型语言:典型的如C、C++、Pascal等语言,都属于编译型语言。它是编译的时候直接编译成机器可以执行或调用的程序,如exe、dll或ocx等类型。如将C语言可直接编译成exe程序,运行时直接运行exe程序就可以了,无需重新编译,所以程序执行效率较高。其执行过程如下所示:
相对于解释型语言,其优点是运行速度快,代码效率高,编译后程序不可以修改,且看不到源码,保密性较好。
缺点是代码需要经过编译方可运行,可移植性差,只能在兼容的操作系统上运行。
由于其执行速度较快,同等条件下对系统的要求较低,因此常用于开发操作系统、大型应用程序、图像处理、数据库开发等场合。
编译:
1、利用编译程序(也称为编译器)从源语言编写的源程序产生目标程序的过程。 2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
2、解释型语言:典型的如Java、Python、Matlab等语言,都属于解释型语言。这类程序不需要编译,运行时使用一个专门的解释器去翻译,每一条语句都是执行的时候才翻译,所以这类程序每执行一次就要翻译一次,运行效率较称低。其执行过程如下所示:
相对于编译性语言,其优点是可移植性好,只要有解释器环境,程序就可以在不同的操作系统上运行。
缺点是代码需要有专门的解释器,在程序运行时,除要给用户程序本身分配内存空间外,解释器也占用系统资源,所以其运行速度较慢。另外,也很难达到像C、C++那样操作系统底层操作的目的。
解释型语言常用于,一是对运行速度要求不高(如一些网页脚本、服务器脚本、接口辅助开发等)的场合,二是对跨平台(操作系统的兼容性)有要求的场合。
综上可以总结出:
运行速度 可移植性(跨平台) 更新 安全
编译型语言 快(二进制文件) 差(CPU指令系统变则执行出错) 重新编译 好(无需提供源码)
解释型语言 慢(边解释边执行) 好(随身带着解释器) 仅解释更新的内容 差(连同源码一起交付)
想必大家已经了解了Python解释器
解释器其实也包括编译过程,只不过该解释器是把Python语言一行一行直接转译运行。解释器不会一次把整个程序转译出来,且不生成目标代码。Python解释器由编译器和虚拟机构成,编译器将源代码转换成字节码,然后再通过Python虚拟机来逐行执行这些字节码。
python程序执行过程:
1、执行 .py 文件,就会启动python解释器
2、编译器将源文件解释成字节码
3、虚拟机将字节码转化成机器语言,与操作系统交互
4、程序运行结束后,将字节码存到pyc文件,便于后续直接执行