精华内容
下载资源
问答
  • 解释型语言python

    2021-01-13 10:39:09
    由于翻译方式的不同,习惯上我们大致把高级语言分为两类,即编译型语言和解释型语言。对于这两种类型的编程语言,很多人在理解层面上存在盲点,本文将对这两种类型的编程语言进行探讨,帮助读者更好的理解这一问题。...

    摘要 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。由于翻译方式的不同,习惯上我们大致把高级语言分为两类,即编译型语言和解释型语言。对于这两种类型的编程语言,很多人在理解层面上存在盲点,本文将对这两种类型的编程语言进行探讨,帮助读者更好的理解这一问题。

    文章概览编译型语言和解释型语言

    基本解释

    优缺点

    python

    python解释器

    python代码执行过程

    编译型语言和解释型语言

    基本解释

    对于编译型语言,我们以C语言为例,C语言在执行过程中,先要将源程序编译为目标文件(机器代码),该目标文件是与平台相关的,也就是说ARM生成的目标文件,不能被用于MIPS的CPU,也不能用于x86的CPU。目标文件经过连接操作就可以生成可执行文件,以后我们想再次运行这段代码时,不必进行编译操作,只需要直接执行生成的可执行文件即可。

    对于解释型语言呢,我们不需要执行编译过程,程序在执行时直接由解释器逐句地对程序进行解释,转换为机器可以执行的代码。但是对于有些解释型语言来说,也需要进行编译操作,比如Java。Java程序在执行过程中先要将源代码编译成字节码文件,然后再由解释器对字节码文件逐句进行解释,所以说Java是一种先编译后解释的语言。(注:Java为了实现跨平台的特性,专门在从高级语言代码转换至机器码过程的中间加入了一层中间层JVM(java虚拟机),Java首先依赖编译器将代码(.java)编译成JVM能识别的字节码文件(.class),然后由JVM解释并执行该字节码,也可结合JIT(just-in-time compilation即时编译)技术,将解释生成的机器码转换为更高效的本地机器码,且该机器码可被缓存,来提高重复执行的效率。)

    常见的编译型语言包括:C/C++、Pascal等,常见的编译型语言包括:Java、JavaScript、VBScript、Perl、Ruby、MATLAB 等。

    优缺点编译型语言可以做到一次编译,多次运行,执行效率比较高;而解释型语言在每次执行时都需要解释器进行解释,执行效率较低(但是我们也不能一概而论,一些解释型语言也可以通过解释器的优化来在对程序做出翻译时对整个程序做出优化,从而在效率上超过编译型语言)。

    编译型语言的执行依赖于平台,生成的可执行文件不能运行在其他平台,需重新编译,跨平台的性较差;而解释型语言的执行依赖于解释器,各个平台都有相应的解释器,解释器会将程序解释成基于当前机器指令集的机器码并执行,所以解释型语言可以很好的移植到其他平台,具有很好的跨平台性。

    编译型语言,在编译阶段即可发现常见的语法或者链接等错误,此机制可在运行前帮助程序员排查出可能潜在的语法、语义和类型转换错误,编译型语言一般都有明确的变量类型检测,也被称作强类型语言,即编译型语言至少能确保所生成的可执行文件肯定是可运行的,至于执行的逻辑不对则属于程序员业务逻辑错误范畴了。而对于解释型语言,代码中的错误必须直到运行阶段方可发现,由此造成的困惑是:往往一段程序看不出问题但却在运行阶段错误连连且需要一个个排查:变量拼写错误、方法不存在等。但也正是基于解释是在运行期执行转化的特性,一般的解释型语言通常都有自己的shell,可以在不确定某些执行结果时立即“动手执行”试一下,这就比每次都需要编译后才能运行并看到结果省去不少时间。

    python

    通过上面对编译型语言和解释型语言的分析,我们可以得出结论,python是属于解释型语言的一种。python类似于Java,为了效率上的考虑,也提供了编译方式,编译后生成的也是字节码的文件形式,并由Python的的VM(虚拟机)的去执行。不同点在于,Python的编译并非强制执行的操作,确切来说Python的编译是自动的,通常发生在对某个模块(module)的调用过程中,编译成字节码的可以节省加载模块的时间,以此达到提高效率的目的。可见,某些先进的高级语言在对编译和解释方面的拿捏舍去,都采取了一种:两手抓,两手都要硬的态度。

    python解释器

    由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器

    CPython: 这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器,它是使用最广的Python解释器.

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

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

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

    python代码执行过程

    参考这篇博客和这篇博客

    本文作者:光阴的故事

    本文链接:

    解释型语言python.html/

    版权声明:

    本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

    展开全文
  • 昨天学了一丝丝的Python,看到很多地方提到了,Python是一门解释型语言,不同于C/C++。 所以,小小的总结了一下下编译型语言和解释型语言的区别鸭~ 编译型语言 常见的许多语言都是编译型语言,比如C/C++,Java。 对于...

    昨天学了一丝丝的Python,看到很多地方提到了,Python是一门解释型语言,不同于C/C++。
    所以,小小的总结了一下下编译型语言和解释型语言的区别鸭~

    编译型语言

    常见的许多语言都是编译型语言,比如C/C++,Java。

    对于编译型语言,就是代码开发之后,需要把所有的源代码都转换成可执行程序。

    举个小栗子吧~
    在这里插入图片描述
    devc++或者vscode等等编译器里,每次用C/C++等编译型语言,除了源代码这个.cpp文件,通常还会有一个同名的.exe文件,这就是源代码的可执行程序。

    我们所编写的源代码属于高级语言,计算机是不能够直接理解的。所以,一个程序在被运行之前,必须要被转换成二进制指令,也就是机器码(计算机CPU能够直接理解的硬件层面给的“代码”)

    而可执行程序里面包含的就是机器码。

    所以运行的时候,我们只需要编译可执行程序,不需要源代码和编译器。

    专业点来说,就是编译型语言可以脱离开发环境(这也是我听说来的哈哈哈),是闭源的(在我的理解里,闭源就是封闭源代码的意思,就是想要运行一个程序,我不需要源代码,可执行文件就好了)

    解释型语言

    而解释型语言呢,想对比而言,就是不会生成可执行文件,只要想要运行,就必须需要源代码。

    解释型语言每次执行程序都需要一边转换高级语言一边运行,正是由于每次运行都必须重新转换为机器码,所以解释型语言的执行效率与编译型语言相比,有时候会存在数量级层面的差异。

    对于计算机的一些底层功能、或者说是关键算法,一般使用C/C++这种效率高的语言来实现,只有在应用层面,才会考虑使用解释型语言。

    正如Python虽然应用很广,功能很强大,但是很多Python的编译器和解释器是用C语言编写的。

    回归正题,由于解释型语言的运行始终都需要解释器(解释器就是将高级语言转化为机器码的工具)和源代码,所以说解释型语言无法脱离开发环境,是开源的
    (是否能够脱离开发环境和是否开源没有必然的关系哈哈哈)

    一点点总结

    我们平时里所说的“我下载了一个程序”时,对于不同的语言,下载的内容是不同的。

    编译型语言:我们下载的是可执行文件,源代码被作者保留,所以编译型语言的程序闭源。

    解释型语言:我们下载的是源代码(正因为如此,解释型语言的代码加密比较难)

    展开全文
  • 主要区别: 编译型语言在全部完成编译后才可以在平台上运行,解析型语言是在运行期间才发生编译,前者运行速度快,后者的跨平台性好。 编译型语言 使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译...

    1、引言

    计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。
    在这里插入图片描述

    2、由来

    高级编程语言是怎么转换为机器码的?总的来说有两种方式:

    1. 编译
    2. 解析

    因此,高级语言也分为编译型语言和解析型语言

    3、区别

    主要区别: 编译型语言在全部完成编译后才可以在平台上运行,解析型语言是在运行期间才发生编译,前者运行速度快,后者的跨平台性好。

    3.1 编译型语言

    使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
    特点
    在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。
    总结
    1.一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;

    2.与特定平台相关,一般无法移植到其他平台;

    3.现有的C、C++、Objective等都属于编译型语言。
    在这里插入图片描述

    3.2 解析型语言

    使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。

    特点
    解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。

    总结
    1.解释型语言每次运行都需要将源代码解释称机器码并执行,效率较低;

    2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;

    3.Python等属于解释型语言。

    3.3 编译型与解释型,两者各有利弊

    前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

    4、关于java

    Java和其他的语言不太一样。因为java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。

    1.你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。

    2.你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。

    3.但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 简介今天的主题是编译型语言和解释型语言,为啥我要把这篇文章放在js里面呢,这是为了之后更好的理解作用域而做的铺垫,让我们来开始今天的讲解。首先我们要知道为啥会将语言分为编译型语言和解释型语言。我们无论用...

    简介

    今天的主题是编译型语言和解释型语言,为啥我要把这篇文章放在js里面呢,这是为了之后更好的理解作用域而做的铺垫,让我们来开始今天的讲解。首先我们要知道为啥会将语言分为编译型语言和解释型语言。我们无论用什么语言(我们编程的语言叫高级语言)来编写程序,都需要应用在计算机上才可以,而计算机只认得一些特定的二进制指令(即所谓的机器码),于是在一个程序可以运行之前,它首先需要被翻译成一种能被计算机执行的形式(计算机理解的语言叫机器语言)。由于翻译的形式不同,分为了编译型语言和解释型语言。

    编译型语言

    在执行源代码之前需要一个专门的编译过程,把程序的源代码编译成可执行文件(比如.exe文件),这个可执行文件里面就是特定的机器语言。而把源代码转化为机器码的语言处理器就是编译器,这时候直接运行这个可执行文件就好了,就不再需要编译器与源代码。常见的编译型语言有C,C++等。

    解释型语言

    在执行源代码之前不需要编译处理,而是在程序执行的时候才开始把源代码翻译成机器语言,即程序一边翻译一边运行,只翻译将要执行的程序源代码。而把源代码转化为机器码的语言处理器就是翻译器。由于一边翻译一边运行的机制,所以每执行一次程序,都需要进行重新翻译,所以脱离不了翻译器和源代码。常见的解释型语言有Python,JavaScript,PHP。

    编译型语言和解释型语言的区别

    执行效率:编译型语言的程序直接运行的是机器语言的可执行文件,而解释型语言的程序是一边翻译一边执行,所以默认情况下,相对于程序的执行效率而言,编译型语言较好。

    跨平台,移植性:我们所说的跨平台,是指源代码跨平台,而不是解释器跨平台。解释器用来将源代码转换成机器码,它就是一个可执行程序,是绝对不能跨平台的。官方需要针对不同的平台开发不同的解释器,这些解释器必须要能够遵守同样的语法,识别同样的函数,完成同样的功能,只有这样,同样的代码在不同平台的执行结果才是相同的。解释型语言之所以能够跨平台,是因为有了解释器这个中间层。在不同的平台下,解释器会将相同的源代码转换成不同的机器码,解释器帮助我们屏蔽了不同平台之间的差异。

    结语

    在写这篇文章之前,我也参考了很多人的文章,我也不知道我写的怎么样,就权当是对这些知识的理解吸收好了,都是我的哈哈。希望大家能和我一直共勉,有问题就帮忙指出,共同努努力,2021一起赚大钱。

    展开全文
  • 在说编译型语言和解释型语言的区别之前,我们先来了解一下什么是编程语言。其实,程序指的就是一系列的指令,用来告诉计算机做什么,而编写程序的关键在于,我们需要用计算机可以理解的语言来提供这些指令。为了有效...
  • 编译型语言与解释型语言 编译型语言:源程序编译后即可在平台运行。使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。...
  • 编译型语言解释性语言 概念程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了程序不需要编译,程序在运行时才翻译成机器语言,每执 行一...
  • 在说编译型语言和解释型语言的区别之前,我们先来了解一下什么是编程语言。其实,程序指的就是一系列的指令,用来告诉计算机做什么,而编写程序的关键在于,我们需要用计算机可以理解的语言来提供这些指令。为了有效...
  • Python \解释型计算机程序设计语言

    千次阅读 2021-01-13 10:39:17
    Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)...
  • 什么解释型语言什么又是编译型语言?前言一、源代码的执行方式二、编译器三、执行原理二者的区别编译型语言解释型语言 前言 本文章主要知识来自于Python编程基础的 “编译型语言和解释型语言的区别”一节,原文...
  • Python 语言属于解释型编程语言。答:对某企业进口一批柴油,应当由海关填发税款缴纳书之日起内缴纳消费税、增值税答:15日The lecture was quite boring. Many listeners fell asleep. The lecture was_____________...
  • 编译型语言与解释型语言的区别

    千次阅读 2021-12-10 18:35:40
    什么叫编译型语言 ...什么解释型语言 通过专门的编译器,把源程序逐行执行成特定平台的机器码并立即执行语言。一般不会考虑整体性的编译和链接处理,相当于把编译型语言的解释与运行混合同时完成。 因
  • 初入门学习Python,很多人都会把PythonIDE和Python解释器混为一谈,总认为他们属于同一种东西,其实他们本质上就很大的区别,接下来我们一起来看看什么是Python解释器?和PythonIDE有什么区别?什么是Python IDE?IDE...
  • 一 二 取决于你怎么解读这个问题。从数学的角度,或者从科学的角度来说,王垠的说法是正确的,但这个正确的答案对解答题主的...对 C 语言或者其他编译型语言来说,编译生成了目标文件,而这个目标文件是针对特定的 CPU
  • 解释语言解释器按着源代码逐行解释,逐行翻译成机器语言,效率较为低下。常见解释语言有:python、javascript、matlab 编译性语言:编译器一次性将所有的yau
  • 常见的编程语言有哪些?各自有什么区别?零基础转行it行业,适合学哪个编程语言?随着技术的发展,python在国内逐渐火热。例如几年前,Python技术在中国迅速崛起,越来越多的人学习Python技术。当然也人考虑其他...
  • 首先需要明确的一点是,什么是编译型语言和解释性语言编译型语言,就是在其执行过程中需要先将其经过编译成机器码来给计算机识别的,其执行效率就会比较高这个是显而易见的,常见比如:C、C++而解释型语言,是不用...
  • 常见语言译解性粒细胞减少嗜酸。的病项不内膜子宫符理哪,程序。闭经的病因,不编译不正哪项确。编释的治疗措首要施是。语言译解下列哪项子宫关于错误乏力收缩。0万某企业当元年亏损1,程序0万盈余元金5公积,...
  • 什么需要数据类型? 在计算机中,不同的数据所需占用的存储空间是不同的, 为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。 简单来说,数据类型就是数据的类别型号。 ...
  • 1、先看个问题 functionfunc(age){ console.log(age); varage=25; console.log(age);...js是弱类型,动态语言,静态作用域,解释型语言。 但是这个解释型,现在有点假了。 因为,也加入了jit。 3、基...
  • 常见的Python五大解释器!

    千次阅读 2021-04-27 05:01:40
    python是一门解释型语言,代码想要运行,必须通过解释器来执行,当然为了满足不同平台的需求,python解释器也分为不同的种类,接下来为大家介绍五款常用python解释器。目前常见的Python解释器包括:CPython、JPython...
  • 常见编程语言

    2021-05-26 22:43:50
    常见编程语言 如果您编写过软件,您肯定问过自己“我应该使用哪种语言来编写这个程序?”这是一个合理的问题。 您的代码是否需要尽可能快? 它是否会在网络上运行? 该代码将位于后端还是前端? 所有语言...
  • 编译型和解释型

    2021-05-14 09:42:30
    因此,解释型语言在我们运行程序时,是没有可执行文件的,但是一个解释程序的外壳程序,可以把代码转换成二进制代码,边解释边执行。 由此可见两者的特点: 编译型特点: 效率高:占资源小,适合复杂的程序。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,531
精华内容 45,812
关键字:

常见的解释型语言有什么