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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
理解python多线程(python多线程简明教程)
Jun 09 Python
Python中time模块和datetime模块的用法示例
Feb 28 Python
Python利用IPython提高开发效率
Aug 10 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
python线程中同步锁详解
Apr 27 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
python3的pip路径在哪
Jun 23 Python
浅谈Python描述数据结构之KMP篇
Sep 06 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
定义select的边框颜色
2008/04/28 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
python 同时运行多个程序的实例
2019/01/07 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
python实现学生信息管理系统源码
2021/02/22 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
数据库方面面试题
2012/04/22 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
新闻专业推荐信范文
2013/11/20 职场文书
八年级数学教学反思
2016/02/17 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技