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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
python实现dnspod自动更新dns解析的方法
Feb 14 Python
Python批量修改文本文件内容的方法
Apr 29 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
python用post访问restful服务接口的方法
Dec 07 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
python实现字符串加密成纯数字
Mar 19 Python
Python-接口开发入门解析
Aug 01 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
解决pycharm下pyuic工具使用的问题
Apr 08 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 分页分组类
2009/12/10 PHP
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
jQuery live
2009/05/15 Javascript
js更优雅的兼容
2010/08/12 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
Python迭代器定义与简单用法分析
2018/04/30 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
python程序封装为win32服务的方法
2021/03/07 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
会走路的树教学反思
2014/02/20 职场文书
总经理助理的职责
2014/03/14 职场文书
个人买房协议书范本
2014/10/06 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
项目负责人岗位职责
2015/02/15 职场文书
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS