解释型语言python

2018-11-26  本文已影响0人  小生很忙

摘要 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。由于翻译方式的不同,习惯上我们大致把高级语言分为两类,即编译型语言和解释型语言。对于这两种类型的编程语言,很多人在理解层面上存在盲点,本文将对这两种类型的编程语言进行探讨,帮助读者更好的理解这一问题。

文章概览

编译型语言和解释型语言

基本解释

  对于编译型语言,我们以C语言为例,C语言在执行过程中,先要将源程序编译为目标文件(机器代码),该目标文件是与平台相关的,也就是说ARM生成的目标文件,不能被用于MIPS的CPU,也不能用于x86的CPU。目标文件经过连接操作就可以生成可执行文件,以后我们想再次运行这段代码时,不必进行编译操作,只需要直接执行生成的可执行文件即可。

  对于解释型语言呢,我们不需要执行编译过程,程序在执行时直接由解释器逐句地对程序进行解释,转换为机器可以执行的代码。但是对于有些解释型语言来说,也需要进行编译操作,比如Java。Java程序在执行过程中先要将源代码编译成字节码文件,然后再由解释器对字节码文件逐句进行解释,所以说Java是一种先编译后解释的语言。(注:Java为了实现跨平台的特性,专门在从高级语言代码转换至机器码过程的中间加入了一层中间层JVM(java虚拟机),Java首先依赖编译器将代码(.java)编译成JVM能识别的字节码文件(.class),然后由JVM解释并执行该字节码,也可结合JIT(just-in-time compilation即时编译)技术,将解释生成的机器码转换为更高效的本地机器码,且该机器码可被缓存,来提高重复执行的效率。)

  常见的编译型语言包括:C/C++、Pascal等,常见的编译型语言包括:Java、JavaScript、VBScript、Perl、Ruby、MATLAB 等。

优缺点

python

  通过上面对编译型语言和解释型语言的分析,我们可以得出结论,python是属于解释型语言的一种。python类似于Java,为了效率上的考虑,也提供了编译方式,编译后生成的也是字节码的文件形式,并由Python的的VM(虚拟机)的去执行。不同点在于,Python的编译并非强制执行的操作,确切来说Python的编译是自动的,通常发生在对某个模块(module)的调用过程中,编译成字节码的可以节省加载模块的时间,以此达到提高效率的目的。可见,某些先进的高级语言在对编译和解释方面的拿捏舍去,都采取了一种:两手抓,两手都要硬的态度。

python解释器

  由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器

python代码执行过程

  参考这篇博客和这篇博客

上一篇 下一篇

猜你喜欢

热点阅读