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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
学习python 之编写简单乘法运算题
Feb 27 Python
python实现发送邮件功能
Jul 22 Python
Python3 处理JSON的实例详解
Oct 29 Python
Python面向对象之继承代码详解
Jan 29 Python
浅析python参数的知识点
Dec 10 Python
python basemap 画出经纬度并标定的实例
Jul 09 Python
使用pip安装python库的多种方式
Jul 31 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
python和js交互调用的方法
Jun 23 Python
学习Python需要哪些工具
Sep 04 Python
Python 多线程之threading 模块的使用
Apr 14 Python
Python实现批量自动整理文件
Mar 16 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五种设计模式小结
2011/03/23 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
js闭包用法实例详解
2016/12/13 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
js实现秒表计时器
2019/12/16 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
python和php学习哪个更有发展
2020/06/17 Python
Django静态文件加载失败解决方案
2020/08/26 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
追悼会子女答谢词
2014/01/28 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
企业年会祝酒词
2015/08/11 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技