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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
一篇文章读懂Python赋值与拷贝
Apr 19 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
python 反向输出字符串的方法
Jul 16 Python
浅析python中的迭代与迭代对象
Oct 08 Python
numpy下的flatten()函数用法详解
May 27 Python
Python-接口开发入门解析
Aug 01 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
numpy 声明空数组详解
Dec 05 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
只用50行Python代码爬取网络美女高清图片
Jun 02 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入门学习的几个不错的实例代码
2008/07/13 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
php数据库备份还原类分享
2014/03/20 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
JS面向对象编程详解
2016/03/06 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
小程序实现密码输入框
2020/11/16 Javascript
Python translator使用实例
2008/09/06 Python
跟老齐学Python之dict()的操作方法
2014/09/24 Python
python中字典dict常用操作方法实例总结
2015/04/04 Python
在Django的URLconf中使用命名组的方法
2015/07/18 Python
深入理解Python对Json的解析
2017/02/14 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
轻松制作精彩视频:Animoto
2018/09/19 全球购物
2014年师德承诺书
2014/05/23 职场文书
先进班集体事迹材料
2014/12/25 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
在职证明书模板
2015/06/15 职场文书
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫