机器语言:优点最底层,速度最快,缺点最复杂,开发效率最低
汇编语言:有点比较底层,速度最快,缺点最复杂,开发效率最低
高级语言:
高级语言所编制的程序不能直接被计算机识别 必须经过转换才能被执行
按转换方式可以分成两类:
- 编译类
在应用源程序执行之前,就将程序源代码翻译成目标代码(机器语言)。因此其目标程序可以托利奇语言环境独立执行,使用比较方便而效率高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行只有目标文件而没有源代码,修改很不方便。
人能读懂的代码 -> 编译 = 翻译 -> 机器能读懂的代码 -> cpu运行
编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。
- 解释类
JAVA,PYTHON,PHP,RUBY等。
可以跨平台,开发效率高,运行效率低
执行方式类似于我们日常生活中的“同声传译”。应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其编辑器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场)。但这种方式比较灵活,可以动态地调整、修改应用程序。
执行 -> 源代码文件 -> 执行 -> 解释器/虚拟机 -> 动态编译 -> 机器语言可执行指令 -> CPU
Python 解释器种类
执行(step 1)-> 源代码文件 - 执行-> 解释器/虚拟机 -动态编译(step2)-> 机器语言/可执行指令 -> CPU
解释器/虚拟机:Cpython,Ipython,Jython,PyPy,IronPython
Cpython: 官网下载python,官方版本解释器,C语言开发
Ipython: 在交互方式上有所增强,基于Cpython之上
PyPy:运行速度快很多,采用JIT技术对python代码进行动态编译(不是解释)。可以显著提高python代码的执行速度。
Jython: 运行再java平台的python解释器,直接把python代码编译成Java字节码执行。
IronPython:和Jython类似,IronPython是运行再微软.Net平台上的python解释器,可以直接把python代码编译成.Net的字节码。