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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
python实现比较两段文本不同之处的方法
May 30 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
Python基础之getpass模块详细介绍
Aug 10 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 Python
Python socket实现简单聊天室
Apr 01 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
Python3.4解释器用法简单示例
Mar 22 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 Python
Python多线程多进程实例对比解析
Mar 12 Python
PyQt5的相对布局管理的实现
Aug 07 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的配置文件php.ini
2006/10/09 PHP
php变量作用域的深入解析
2013/06/03 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
node.js通过url读取文件
2020/10/16 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
python推导式的使用方法实例
2021/02/28 Python
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
税务干部鉴定材料
2014/02/11 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年材料员工作总结
2014/11/19 职场文书
英雄儿女观后感
2015/06/09 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript