精华内容
下载资源
问答
  • Python解释器编译器

    2020-12-22 00:11:17
    Python解释器下载地址 Python的版本可以选3.5,3.7,3.8。切记,Python2与Python3不兼容。因此不要下Python2,并且开发者也声明Python2很快就会被淘汰。 Python解释器下载的顺序: 1.选择Install now 2.切记,一定要...
  • 高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器。编译型语言通常的执行过程是:源代码――预处理器――编译器――目标代码――链接器――可执行...

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

    编译型语言通常的执行过程是:

    源代码――预处理器――编译器――目标代码――链接器――可执行程序

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

    编译器

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

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

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

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

    展开全文
  • 编译器与解释器 编译器/解释器:高级语言与机器之间的翻译官 都是将代码翻译成机器可以执行的二进制机器码,只不过在运行原理翻译过程有不同而已。 ...那么两者有什么区别呢?...Python解释器种类 Py

    编译器与解释器

    编译器/解释器:高级语言与机器之间的翻译官

    都是将代码翻译成机器可以执行的二进制机器码,只不过在运行原理和翻译过程有不同而已。

    点击获取全套Python零基础资料

    那么两者有什么区别呢?

    编译器:先整体编译再执行 解释器:边解释边执行 用一个通俗的例子进行比喻:我们去饭馆吃饭,点了八菜一汤。编译器的方式就是厨师把所有的菜给你全做好 了,一起给你端上来,至于你在哪吃,怎么吃,随便。

    解释器的方式就是厨师做好一个菜给你上一个菜,你就吃 这个菜,而且必须在饭店里吃。

    在这里插入图片描述

    Python解释器种类

    Python有好几种版本的解释器: CPython:官方版本的解释器。这个解释器是用C语言开发的,所以叫CPython。CPython是使用最广的Python 解释器。我们通常说的、下载的、讨论的、使用的都是这个解释器。

    Ipython:基于CPython之上的一个交互式解释器,在交互方式上有所增强,执行Python代码的功能和CPython 是完全一样的。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

    PyPy:一个追求执行速度的Python解释器。采用JIT技术,对Python代码进行动态编译(注意,不是解释),可以显著提高Python代码的执行速度。绝大部分CPython代码都可以在PyPy下运行,但还是有一些不同的,这就 导致相同的Python代码在两种解释器下执行可能会有不同的结果。

    Jython:运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

    IronPython:和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python 代码编译成.Net的字节码。

    点击获取全套Python零基础资料

    Python的运行机制

    Python作为动态解释性语言,其运行机制可参考下

    都说解释器慢,Python也有想办法提高一下运行速度的,那就是使用pyc文件。这点参考了JAVA的字节码做法, 但并不完全类同。

    在这里插入图片描述
    我们编写的代码一般都会保存在以.py为后缀的文件中。在执行程序时,解释器逐行读取源代码并逐行解释运行。 每执行一次,就重复一次这个过程,这其中耗费了大量的重复性的解释工作。为了减少这一重复性的解释工作, Python引入了pyc文件,pyc文件是将py文件的解释结果保存下来的文件,这样,下次再运行的时候就不用再解 释了,直接使用pyc文件就可以了,这无疑大大提高了程序运行速度。

    注:原创不易,严禁抄袭。

    展开全文
  • 编译器和解释器各有什么特点与区别这是我们编译原理老师前几天发在在线学习平台上(没办法,因为肺炎,都只能搞个在线学习了)的一个课前讨论问题,写着写着就发现好像写的有点多了,不好发布在平台上了,于是就干脆...

    编译器和解释器各有什么特点与区别

    这是我们编译原理老师前几天发在在线学习平台上(没办法,因为肺炎,都只能搞个在线学习了)的一个课前讨论问题,写着写着就发现好像写的有点多了,不好发布在平台上了,于是就干脆写成了文章的形式,发布在了知乎上面,也算是自己的之前学习编译原理后的复习与总结,如有遗漏或错误,欢迎大家进行指正。

    如果直接说解释器与编译器的特点与区别,会比较抽象,不好理解,最好拿一些特定的编程语言来举例子。

    首先我们来列举一下常见的编程语言:Java、C、C++、Python、JavaScript、PHP.....

    然后我们把这些语言分个类,类型1:C、C++

    类型2:JavaScript、Python、PHP

    类型3:Java

    这个分类是按照使用编译器还是解释器来进行分的,或许你会比较疑惑的是,为啥会有三个类别呢,不应该是两个吗?

    其实确实应该是两个,但问题是,Java既用了解释器也用编译器,所以只能单独立出来了。

    对于类型1,我们一般称为编译型语言,也就是需要用到编译器进行编译。

    对于类型2,我们一般称为解释型语言,或是脚本语言,也就是要用解释器进行解释。

    在说具体的解释型语言与编译型语言之前,我想提一下,或许有的人会有这样的一种认知,能直接运行的就是编译型语言,不能直接运行的就是解释性语言,这种理解其实是有偏差的,不管是编译型还是解释型语言,它们都是无法直接运行的,在windows下可以直接运行的一般情况下只有以.exe结尾的可执行文件,而.exe文件里都是二进制数据,之所以是二进制数据的原因是,最终执行程序的不是系统,而是CPU,而CPU它只认识二进制数。

    既然操作系统或者CPU都无法直接执行这些语言,那怎么办呢,这时就需要编译器或解释器了,它们起到了一个翻译官的作用,它们将自己认识的语言翻译成操作系统或者CPU可以执行的二进制数据,同时这二者的区别就体现在了这个翻译的过程里。

    在我们的日常生活中也有许多做翻译工作的人,大多数可以分为两类,一类是笔译,一类是口译,笔译就是用文字将一份文档翻译成另一种语言编写的文档,口译就是以口语的方式,将译入语转换为译出语的方式。

    而编译器与解释器就类似于笔译工作者与口译工作者的区别,编译器就是笔译工作者,而解释器就是口译工作者。编译器在编译的过程中,读入源程序文件,输出一份等价的二进制可执行文件,就和笔译工作者一样,他们都会输出一份翻译后的文件。

    解释器在解释的过程中,读入源程序文件,输出的是执行的结果,就和口译工作者一样,他们输出的是已经完成翻译的结果。

    输出的不同是这两者最大的区别,一个会输出用于执行的文件,另一个只会输出运行的结果;

    同时,我们都知道,一般情况下,编译器输出的执行文件在执行的过程中,不管是运行速度还是效率都能甩解释器几条大街,那是不是就是说,编译型语言就比解释型语言要好呢?或者说我们有编译器就够了,还要啥解释器呀,速度又慢,效率又低,运行还要装个解释器,麻烦的要死。

    其实并不是这样的,任何事物的存在性必有其合理性,事实上解释器也有许多编译器没有的优点。

    首先,最广为人知的一点是,解释型语言可以跨平台执行,只要这个平台有对应的解释器就行,毕竟真正执行程序的是解释器而不是平台系统。

    另外,解释型语言在开发效率上比编译型语言强大许多,同样的功能,用解释型语言写的代码要远远少于编译型语言的代码量。

    还有一点就是,其实解释型语言并不慢,甚至某种程度上比编译型语言还要快上好几分,我估计不少人要犯嘀咕了,前面不是说编译型更快吗,怎么这里又说解释型更快了呢?

    其实是这样的,我们在执行编译型语言的时候,大都忽略了编译器在编译的时候所花的时间,但其实这个时间应该是要算上的,如果不算上的话,对解释器就太不公平了,就和两个人比赛百米赛跑,但其中一个人在起跑的时候已经站在50米的位置了,这明显就是欺负人。

    事实上编译器在编译的过程中所花的时间是极高的,甚至可以这么说,分别用解释型语言和编译型语言写同一个程序,然后同时开始运行(注:此处运行的条件是二者都是源代码的情况下,也就是说编译型语言还需要编译),解释器都运行结束,结果都出来了,而编译器还在编译呢,别说结果了,还没正式开始运行呢。

    曾经在网上看到过有人吐槽C++编译太慢的问题,说早上来到公司,看到有一个Bug被上报了,然后开始愉快的Debug,改了十分钟就改好了,然后按下了编译键,接着开始等它编译完成,一直等到下午快下班的时候才显示编译完成,于是一天就改了一个bug。

    或许有人不服,说自己c++编译很快的,几秒就完成了,那是因为你C++文件太少了,一两个确实快呀,可问题是你见过哪个公司项目中只有一两个C++文件的,大都是几百甚至上千个文件,所以这个时候,用c++进行调试工作是一件及其耗时的事情,而解释型语言就不会有这个问题,换句话说解释型语言启动速度快,但启动后的运行效率不高,而编译型语言启动速度慢,但启动后运行效率高,这也是两者一个极大的区别。

    这里简单提一下上面的类型3,也就是Java这个语言,它既可以说是编译型语言也可以说是解释型语言,因为它内部既有解释器也有编译器(还不止一个)的存在。

    Java中编译器比较多,它包含一个前端编译器,一个后端编译器(JIT)以及一个静态预编译器(AOT)。前端编译器的功能是从源代码生成Java字节码,也就是中间代码;

    后端编译器,也叫作即时编译器(JIT)它是包含在了JVM中,用于在执行的过程中,将热点代码(也就是执行次数比较多的代码)转化为本地机器码,并做一些优化,以加速执行效率。

    静态预编译器(AOT)它是直接将java源代码编译成本地机器码,也就是传统意义上的编译器,但用的不多,因为这样会使java的一些特性丢失。

    Java中的解释器与JIT一起打包,作为JVM中的执行引擎,解释器主要将字节码进行解释执行,同时配合JIT进行代码的优化操作。

    最后,这里总结一下编译器与解释器的特点和区别

    特点:解释器:

    优点:跨平台、启动速度快、开发效率高

    缺点:执行速度慢,执行效率低

    编译器:

    优点:执行速度快、执行效率高

    缺点:平台相关性高,编译速度(启动速度)慢,开发效率低

    可以看出,二者的特点起到了一个很好的互补关系,所以没有谁好谁坏的说法,同时Java很好的融合了这两者的优点。

    区别:编译器输出一个翻译完成后的可执行文件,是一个二进制数据流;解释器输出解释后运行的结果;

    展开全文
  • 解释型语言用到的是解释器,编译型语言用到的是编译器。 编译型语言通常的执行过程是:源代码——预处理器——编译器——目标代码——链接器——可执行程序。 某种意义上来说预处理事实上是一个附加的功能,C,PHP...

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

    解释型语言用到的是解释器,编译型语言用到的是编译器。

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

    某种意义上来说预处理事实上是一个附加的功能,C,PHP,都可以添加这种功能,其中,预处理指令多为头文件包含,宏定义等等。因为宏定义的核心说白了就是一个字“换”,所以预处理就是提供一个程序执行的环境,举个例子,就像星际里虫族要进行生产活动一定要先把那块地区就行污染腐化。

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

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

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

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

    最后,生活那么苦,来看看沙雕视频欢乐下吧!

    自家亲视频号,卑微在线求关注

    展开全文
  • 这篇教程,我们一起来了解编译器和解释器的工作原理,这对我们提升能力很重要。我一直认为概念或理论知识是非常重要的,让我们能够将很多模糊的认知关联起来,变得更加清楚,从而打开视野,上升到新的层次。但是,...
  • Python学习--1.5Python编译器和解释器

    千次阅读 2018-03-23 02:33:46
    当我们写好一个python的代码保存为.py文件时,点击运行程序,程序就可以出结果,这个过程需要Python解释器去实现。 Python的解释器很多,但使用最广泛的还是CPython、PyPy、Jython、IPython、IronPython等。 其中...
  • 高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器。编译型语言通常的执行过程是:源代码——预处理器——编译器——目标代码——链接器——可执行...
  • CC++的编译过程有几个步骤: > 预编译: 将.c 文件转化成 .i文件),使用的gcc命令是:gcc –E,对应于预处理命令cpp > 编译: 将.c/.h文件转换成.s文件,使用的gcc命令是:gcc –S,对应于编译命令 cc –S >...
  • 详解python编译器和解释器的区别高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器。编译型语言通常的执行过程是:源代码——预处理器——编译器...
  • Python IDE和解释器的区别是什么?

    千次阅读 2021-02-04 07:55:26
    经常会有刚刚入门Python的初学者把Python IDE与Python解释器弄混,其实它们是有本质区别的,有些人还会误认为配置Python环境就是配置IDE工具。那么,Python IDE解释器的区别是什么呢?下面老师就带大家好好认识...
  • 在查看了很多关于编译器和解释器之间差异的帖子后,我仍然无法弄清楚它们的构造和内部机制的区别.我读到的最常见的区别是编译器生成一个可执行的目标程序{意味着机器代码作为其输出},它可以在系统上运行而不是输入.而...
  • 对于刚刚接触或者对Python有一些了解的初学者,很难区分Python解释器,编辑器以及终端这些概念。以致于在学习教程的时候遇到一些困难以及犯一些错误。这篇文章带领大家深入了解这些概念的区别联系,从此再也不会...
  • 解释器可在Windows、Linux Mac OS 等多种操作系统上使用。它的可移植性和可伸缩性等特性使得它更加容易被运用。Python 库可用于以下用途:Web 开发数据科学机器学习多媒体软件开发像 Django 这样的 Web 框架GUI...
  • 用于 Python 的 PHP 解析器、编译器和解释器 用法 ###Executing php 代码您可以使用pyphp.executer模块执行 php 代码。 execute_file读取一个 php 文件并执行它,而execute_php执行给定的 php 代码。 要运行 php ...
  • python最小解释器

    2019-01-23 20:06:55
    python最小解释器,可以把py文件附加exe末尾,从而把py文件变成exe,可脱离python环境运行。 py文件附加到exe方法,执行下列dos命令: copy /b pyloader.exe+test.py test.exe
  • 11 个最佳的 Python 编译器和解释器

    千次阅读 2020-01-10 17:30:00
    ????“Python猫” ,一个值得加星标的公众号原作:Archie Mistry翻译:豌豆花下猫@Python猫原文:https://morioh.com/p/765b19f066...
  • Python IDLE 以及编译器解释器的概念梳理 Python中IDLE是其自带的集成开发工具(IDE:同时拥有编辑、编译、调试、运行等多种功能的集成工具),并且它也是python自带的编译器和解释器。 *python的IDLE命名之所以不...
  • 编译器与解释器编译器/解释器:高级语言与机器之间的翻译官都是将代码翻译成机器可以执行的二进制机器码,只不过在运行原理翻译过程有不同而已。那么两者有什么区别呢?编译器:先整体编译再执行解释器:边解释边...
  • 白手起家,从头开启python的开发环境搭建。 一. 如何安装Python 在https://www.python.org/下载安装包。 下载下来一个exe文件,直接双击运行。 选择Install Now,立即安装。 配置环境变量:右键开始——控制面板...
  • 解释器可在Windows、Linux Mac OS 等多种操作系统上使用。它的可移植性和可伸缩性等特性使得它更加容易被运用。 Python 库可用于以下用途: Web 开发 数据科学 机器学习 多媒体 软件开发 像 Django 这样...
  • 谢邀集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,451
精华内容 18,180
关键字:

python解释器和编译器

python 订阅