计算机语言&Python解释器
[TOC]
1.1机器语言
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算的机器语言
机器语言属于低级语言
1.2汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过使用英文指令标识符,具备一定的逻辑性,便于理解和记忆
但同样还是很复杂,很冗余,一个简单的功能,需要写很多的程序代码
但还是有优点的,用汇编语言能完成的操作不是一般高级语言能实现的,而且源程序经汇编生成的可执行文件不仅小,而且执行速度快
1.3高级语言
高级语言包含c,c++,java,PHP,python,Go,和汇编语言相比,高级语言对程序员更加友好,开发效率更高。
高级语言所编制的程序是不能被计算机直接识别的,必须经过转换才能被执行!
高级语言之间的本质区别:转换方式不同
根据转换方式的不同,分为两类
编译类
编译是指在应用源程序执行之前,就把程序源代码“翻译”成目标代码(机器语言),因此目标程序可脱离其语言环境独立运行(编译后生成的可执行文件,是cpu可以理解的二进制机器码组成的),使用比较方便,效率比较高。但是应用程序报错,需要修改,就必须修改源代码,然后重新编译生成新的机器码文件才能执行,生成的机器码文件是不能修改的,安全性较高。
编译后程序运行时不需要重新翻译,直接运行机器码文件,可脱离源码文件,由于生成的是机器码文件,所以运行效率较高。但是由于对不同的操作系统,调用cpu的二进制指令是不同的,所以跨平台性差。如C、C++、Delphi
解释类
执行方式类似于日常生活的"同声翻译",程序源代码一遍由操作系统自带的解释器“翻译”成机器语言,一遍执行,所以效率相对较低,而且不能生产可独立执行的文件,因此程序不能脱离解释器(想运行,必须有解释器,就像鱼外国人交流,要有翻译在场),但这种方式比较灵活,可动态调整,修改应用程序。如Java、Python、php、ruby
编译型语言VS解释性语言
编译型:
1.把源代码变异成机器语言的可执行文件,例如我们常在windows上的安装包.exe文件
2.执行.exe文件
优点
1.程序执行时,不需要源码,不依赖语言环境,因为可执行的是机器码文件
2.执行速度快,因为源代码已经翻译成了计算机可直接理解的机器语言
3.生成的机器码文件是不能查看和修改的,所以安全性较高。
缺点
1.每次修改或报错,都需要重新修改源代码,并编译生成机器码文件
2.跨平台性不好,因为不同的操作系统,调用底层硬件的二进制指令不同,需要为不同的操作系统生成不同的操作指令
解释型
1.用户调用解释器,执行源码文件
2.解释器把源代码边解释便声称机器码指令,边交给CPU执行。不同的操作系统已经自带了解释器
优点
1.跨平台性好,因为解释器已经做好了对不同平台的交互处理,用户写的源代码不要考虑平台差异,一份代码,所有平台都能直接运行。
2.随时修改,立即生效,直接运行查看结果
缺点
1.运行效率相对解释型语言较低,因为所有的程序都是边解释边运行。
2.代码是明文,安全性不高
2.1python解释器种类
CPython
当我们从Python官网下载并且安装好PYthon2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(不是解释),所以可以显著提高Python代码的执行速度
JPython
JPython是运行在java平台上的Python解释器,可以直接把Python代码变异成java字节码执行
IronPython
IronPython和JPython类似,只不过IronPython是运行在微软.net平台上的Python解释器,可以直接把Python代码变异成.Net字节码
2.2python 2.x or 3.x
python3.x之前不是能兼容2.x的,但是由于很多公司都是使用的python2.x版本,并且代码量已经很多了,很难特别快的就进行版本的升级,所以Python语言的创始人就开发了python2.7版本,兼容2.x和3.x的功能,给公司一个版本升级的过渡时间。
但是2.7版本有效期到2020年,所以新的企业都在使用Python3.x版本。
机器语言
优点是最底层,速度最快,缺点是最复杂,开发效率最低
汇编语言
优点是比较底层,速度最快,缺点是复杂,开发效率低
高级语言
编译型语言速度快,跨平台
解释型语言跨平台好,一代码,到处使用。缺点是毒素相对慢,以来解释器
python解释器种类
Cpython Ipython Jpython PyPy IronPython
Python2.x与Python3.x
相关文章