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


Posted in Python onJune 24, 2019

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

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

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

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

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

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

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

Python 相关文章推荐
Python求两个list的差集、交集与并集的方法
Nov 01 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
python基于win32api实现键盘输入
Dec 09 Python
基于Python 函数和方法的区别说明
Mar 24 Python
python tkinter实现定时关机
Apr 21 Python
Pytorch使用shuffle打乱数据的操作
May 20 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
jQuery的框架介绍
2016/05/11 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
Python设计模式之抽象工厂模式
2016/08/25 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
python如何从文件读取数据及解析
2019/09/19 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
全球最大的中文旅行网站:去哪儿网
2017/11/16 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
计算机学生求职信范文
2014/01/30 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
微电影大赛策划方案
2014/06/05 职场文书
岗位安全生产责任书
2014/07/28 职场文书
端午节活动总结
2014/08/26 职场文书
2014年转正工作总结
2014/11/08 职场文书
培训学校2015年度工作总结
2015/07/20 职场文书
如何写通讯稿
2015/07/22 职场文书