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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
python获取指定路径下所有指定后缀文件的方法
May 26 Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
python 列表降维的实例讲解
Jun 28 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
Django REST Framework之频率限制的使用
Sep 29 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 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
ajax缓存问题解决途径
2006/12/06 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
nodejs基础应用
2017/02/03 NodeJs
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
使用django实现一个代码发布系统
2019/07/18 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
智能室内花园:Click & Grow
2021/01/29 全球购物
Python面试题集
2012/03/08 面试题
中专生学习生活的自我评价分享
2013/10/27 职场文书
业务总经理岗位职责
2014/02/03 职场文书
开学典礼主持词
2014/03/19 职场文书
普通党员整改措施
2014/10/24 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书