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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
Python通过future处理并发问题
Oct 17 Python
深入理解Python中的super()方法
Nov 20 Python
python学习笔记之列表(list)与元组(tuple)详解
Nov 23 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
python实现雨滴下落到地面效果
Jun 21 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
django列表筛选功能的实现代码
Mar 27 Python
Python中Selenium模块的使用详解
Oct 09 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
Dec 03 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 生成WML页面方法详解
2009/08/09 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
Python  连接字符串(join %)
2008/09/06 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
python队列queue模块详解
2018/04/27 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
python如何将图片转换素描画
2020/09/08 Python
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
物理教学随笔感言
2014/02/22 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
2015年安全月活动总结
2015/03/26 职场文书
人事聘任通知
2015/04/21 职场文书
通知函格式范文
2015/04/27 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
使用python创建股票的时间序列可视化分析
2022/03/03 Python
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫