【Python初识】Python解释器

所有的高级编程语言到机器代码之间的过程,有两个种类的三种类别。分别是编译和解释,编译型和解释型和编译解释型。

高级程序语言的翻译

计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个“翻译机”来从事把高级语言转变成计算机能读懂的机器语言的过程。这个过程分成两类,第一种是编译,第二种是解释。(即编译或解释:把高级语言转换成机器语言)

  1. 编译型语言在程序执行之前,会通过编译器对程序执行一个编译的过程,把程序转变成机器语言。运行时就不需要翻译,而直接执行就可以了。最典型的例子就是C语言。
  2. 解释型语言就没有这个编译的过程,而是在程序运行的时候,通过解释器对程序逐行作出解释,然后直接运行,最典型的例子是Ruby。
  3. 编译解释型语言,如Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件

Python程序执行过程

  在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件(注意:只在Py3.x才有,且存在目录:%安装目录%Lib/pycache/)。

  我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

  • 当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
  • 当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
  • 所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

总结:

  • PYCodeObject:程序当前编译后的运行之地;
  • pyc:是以前成功编译运行后的保存,便于下次直接调出来运行;

Python解释器

由于整个Python语言和规范都是开源的,所有任何人都可以编写Python解释器来执行Python代码;

CPython
  官方解释器;用C语言开发;在命令行下运行python就是调用CPython解释器;以“>>>”作为提示符;

Ipython(Interactive Python)
  基于CPython之上的一个交互式解释器,即IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的;比如,很多国产浏览器虽然外观不同,但是内核其实都是调用了IE;以“In[序号]:”作为提示符;

PyPy
  其目标是执行速度的提升,采用JIT技术,对Python代码进行动态编译(不是解释);

Jython
  在java平台上的Python解释器,把Python代码编译成字节码执行;

IronPython
  运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值