编译和解释的区别,python的编译和执行区别

编译和解释的区别

编译和解释的区别,python的编译和执行区别


1、在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序 。
2、解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序 。
python的编译和执行区别python编译过程和执行原理


(1)python执行原理


这里的解释执行是相对于编译执行而言的 。我们都知道 , 使用C/C++之类的编译性语言编写的程序 , 是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件 。运行该程序的时候 , 就可以把二进制程序从硬盘载入到内存中并运行 。


但是对于Python而言 , python源码不需要编译成二进制代码,它可以直接从源代码运行程序 。当我们运行python文件程序的时候 , python解释器将源代码转换为字节码 , 然后再由python解释器来执行这些字节码 。这样,python就不用担心程序的编译,库的链接加载等问题了 。
【编译和解释的区别,python的编译和执行区别】

对于python解释语言,有以下3方面的特性:


每次运行都要进行转换成字节码,然后再有虚拟机把字节码转换成机器语言 , 最后才能在硬件上运行 。与编译性语言相比,每次多出了编译和链接的过程,性能肯定会受到影响 。


由于不用关心程序的编译和库的链接等问题,开发的工作也就更加轻松啦 。


python代码与机器底层更远了,python程序更加易于移植,基本上无需改动就能在多平台上运行 。


在具体计算机上实现一种语言,首先要确定的是表示该语言语义解释的虚拟计算机 , 一个关键的问题是程序执行时的基本表示是实际计算机上的机器语言还是虚拟机的机器语言 。这个问题决定了语言的实现 。根据这个问题的回答,可以将程序设计语言划分为两大类:编译型语言和解释型语言 。

    推荐阅读