1.1 python怎么工作
- 在解释程序语言如何执行这个过程,首先需要理解:计算机对于大部分程序语言是不能够识别的,这就需要在我们使用高级语言描述的时候,需要有一个“翻译员”将高级语言转变为计算机能够理解的机器语言。这个过程分为两类:编译和解释。这两类在实现过程有所差异,有其优缺点。
编译性语言、解释性语言和脚本语言:
- 编译性语言,在程序执行之前,它先会通过编译器对程序进行一个编译过程,这时就把程序变成了机器语言。编译成功后,运行时就不要翻译,可以直接执行。典型例子为C语言。(编译->汇编->链接)
- 解释性语言就不存在编译这一过程,实际上解释语言是通过解释器对程序逐一解释,然后执行。这样解释性语言每执行一次就要翻译一次,效率比较低。典型例子为ruby。
- 脚本语言:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。JAVASCRIPT,ASP,PHP,PERL都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。
参考自:http://www.cnblogs.com/kym/archive/2012/05/14/2498728.html
补充:java解释器,java也是编译了,但并没有直接编译成机器语言而是编译成字节码,然后会在java虚拟机用解释的方式执行字节码。python也是用类似方式,将python编译成字节码然后由专门的python解释器负责解释和执行字节码
然而,python是一种解释性语言。处于效率而言,python也是提供了编译的方式,编译得到pyc文件,存储了字节码。但和java不同的是,python是一种解释性语言,编译字节码不是强制的操作,而是一种自动过程。编译字节码可以节省加载模块的时间,提高效率。除此字节码形式增加了反向工程的难度,可以保护源代码。
参考自:
http://l62s.iteye.com/blog/1481421
python先将代码(.py)文件编译成字节码,字节码交给虚拟机,由虚拟机一条一条执行。字节码对应python虚拟机程序是pycodeobject对象。
参考自:
http://itindex.net/detail/49069-python-%E7%A8%8B%E5%BA%8F-%E5%8E%9F%E7%90%86