大家都会听到这么一种说法,python是脚本语言,一门解释型语言,那么什么是解释型语言呢?
为了回答这个问题,我们从头撸起
语言又大致分为3类:机器语言、汇编语言、高级语言,简单的解释来说:
机器语言:可以被硬件平台直接理解的语言,二进制编码,机器的指令集合
汇编语言(伪机器语言):加入了助记符的指令集合
高级语言:高级封装了的语言指令集合、包括对存储的处理,比较接近自然语言或者数学语言,让人易于理解和编写。
那么我们日常听到的c、c++、java、python、ruby 等等都可以归为高级语言的范畴。有了高级语言,程序员高兴了,我写个句子,写个表达式,就完成了我要做的事情,再不用在纸上敲000000011111了,但是机器它不开心了,看不懂啊,机器只认0和1,那怎么办呢,就需要 把高级语言翻译一下,翻译成机器能懂的语言,这个翻译过程有2种方式:编译和解释。
编译型语言运行过程
编译型语言,就是先把高级语言 变成 机器语言并存储下来(编译),再执行机器语言(执行),执行速度会比较快。
解释型语言运行过程
解释型语言:通过解释器把 高级语言先翻译成字节码,再在虚拟机中一行行翻译字节码成机器码,边翻译边运行。 这个翻译成字节码和把字节码翻译成机器码的过程在一起的,对程序员/使用者来说 是隐形的。使用者看到的情况就是 写完代码,点击运行就OK了。
由此 我们总结 一下 这么几个术语的概念(重点来了):
源代码:为了程序所写的语句 (文本文件) ,在python中 就是 .py文件
解释器:把源代码翻译成一种中间状态的代码并运行python代码的程序
字节码:中间态的代码,在pyhton中是 .pyc文件
PVM:python虚拟机,循环迭代 运行字节码的 程序
在python中 解释器和虚拟机的概念通常是不做区分的,他们是 一个完整程序的2部分。