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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
Python实现简单的HttpServer服务器示例
Sep 25 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
Python多进程原理与用法分析
Aug 21 Python
python 内置模块详解
Jan 01 Python
Pandas透视表(pivot_table)详解
Jul 22 Python
python生成requirements.txt的两种方法
Sep 18 Python
利用python实现冒泡排序算法实例代码
Dec 01 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
Python 用户输入和while循环的操作
May 23 Python
Python IO文件管理的具体使用
Mar 20 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 分页函数multi() discuz
2009/06/21 PHP
PHP闭包实例解析
2014/09/08 PHP
繁简字转换功能
2006/07/19 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
js实现时间日期校验
2020/05/26 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
学习全国两会精神心得体会范文
2014/03/17 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
师范生教育见习总结
2015/06/23 职场文书