详解python编译器和解释器的区别


Posted in Python onJune 24, 2019

高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器。

编译型语言通常的执行过程是:源代码——预处理器——编译器——目标代码——链接器——可执行程序

某种意义上来说预处理事实上是一个附加的功能,C,PHP,都可以添加这种功能,其中,预处理指令多为头文件包含,宏定义等等。因为宏定义的核心说白了就是一个字“换”,所以预处理就是提供一个程序执行的环境。

编译器——目标代码就是把高级程序语言转换成机器可以理解执行的机器语言。

链接器的功能开始理解前要先了解一点。头文件在预处理过程中被编译成一个个单独的文件,也就是库文件。而程序是另外的文件,并不包含在库文件里。所以这就需要一个“胶水”把程序和库连接起来形成一个可执行文件(Windows是EXE)。这就是链接器的作用。

解释器理解就简单了,把程序一行行的的理解,执行。首先读一行代码,然后执行这一行代码的意思,接下来读下一行代码,执行次行代码。一次循环往复。

编译器则是读入所有代码,打包成可执行文件,执行。由于我们运行的一般都为编译过后的可执行文件,也就是执行的是机器语言(而且是IDE优化后的),所以运行速度要比解释型语言快。

Python 相关文章推荐
python的urllib模块显示下载进度示例
Jan 17 Python
python实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
itchat接口使用示例
Oct 23 Python
python实现对求解最长回文子串的动态规划算法
Jun 02 Python
Python 加密与解密小结
Dec 06 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
Python流程控制 while循环实现解析
Sep 02 Python
python提取xml里面的链接源码详解
Oct 15 Python
python绘制随机网络图形示例
Nov 21 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 Python
python爬虫之自制英汉字典
Jun 24 #Python
Pyqt5实现英文学习词典
Jun 24 #Python
set在python里的含义和用法
Jun 24 #Python
如何利用Anaconda配置简单的Python环境
Jun 24 #Python
python程序变成软件的实操方法
Jun 24 #Python
PyCharm安装Markdown插件的两种方法
Jun 24 #Python
python设置环境变量的原因和方法
Jun 24 #Python
You might like
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python常用排序算法的实现代码
2019/11/08 Python
Python tkinter三种布局实例详解
2020/01/06 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
网上卖盒饭创业计划书
2014/01/26 职场文书
服装创业计划书范文
2014/02/05 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
有关环保的标语
2014/06/13 职场文书
实习生个人总结范文
2015/02/28 职场文书
法定代表人免职证明
2015/06/24 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL