美文网首页python 高级码农成才之路
*禁白嫖* python解释器编译器的理解

*禁白嫖* python解释器编译器的理解

作者: 幼姿沫 | 来源:发表于2021-01-15 14:34 被阅读0次

    禁白嫖的含义就是 

    尊重我的劳动成果  点赞 打赏 转发 谢谢您各位捧场

    编程语言的分类

    编译型与解释型

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

    编译器:是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 

    解释器:是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快. 

    这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

    编译型相当于厨师直接做好一桌子菜,顾客来了直接开吃,而解释型就像吃火锅,厨师把菜洗好,顾客需要自己动手边煮边吃。

    编译解释型语言的区别


    python程序执行原理

    1.把源代码转换为字节码

    2.把转化好的字节码转发到python虚拟机中PVM中执行


    解释器

    以上是对编译型语言和解释型语言的一个简单粗暴的区分,但是 Python(这里主要是指CPython)并不是严格的解释型语言;

    因为 Python 代码在运行前,会先编译(翻译)成中间代码,每个 .py 文件将被换转成 .pyc 文件,.pyc 就是一种字节码文件,它是与平台无关的中间代码,不管你放在 Windows 还是 Linux 平台都可以执行,运行时将由虚拟机逐行把字节码翻译成目标代码。

    我们安装Python 时候,会有一个 Python.exe 文件,它就是 Python 解释器,你写的每一行 Python 代码都是由它负责执行,解释器由一个编译器和一个虚拟机构成,编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码,所以,解释型语言其实也有编译过程,只不过这个编译过程并不是直接生成目标代码,而是中间代码(字节码),然后再通过虚拟机来逐行解释执行字节码。

    总结

    Python代码首先会编程一个字节码文件,再由虚拟机逐行解释,把每一行字节码代码翻译成目标指令给CPU执行。

    相关文章

      网友评论

        本文标题:*禁白嫖* python解释器编译器的理解

        本文链接:https://www.haomeiwen.com/subject/vnxwaktx.html