-
2020-12-20 10:18:45
python是不是解释型语言
发布时间:2020-11-11 13:46:59
来源:亿速云
阅读:61
作者:小新
小编给大家分享一下python是不是解释型语言,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
python是解释型语言么?
python并非完全是解释性语言,它是有编译的,先把源码py文件编译成pyc或者pyo,然后由python的虚拟机执行,相对于py文件来说,编译成pyc和pyo本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有提高代码的执行速度,通常情况下不用主动去编译pyc文件,文档上说只要调用了import model那么model.py就会先编译成pyc然后加载。
其实Python和Java/C#一样,也是一门基于虚拟机的语言,我们先来从表面上简单地了解一下Python程序的运行过程吧。
当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。
可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。
熟悉Java的同学可以想一下我们在命令行中如何执行一个Java的程序:javac hello.java
java hello
只是我们在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。
以上是python是不是解释型语言的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
更多相关内容 -
Java语言是" 解释执行" 的语言吗
2018-12-23 21:00:33class(字节码)文件经过JVM编译成机器码进行解释执行(解释执行)。对于热点代码,JIT(JustInTime)编译器会在运行时将其编译为机器码执行(编译运行) 所以在JVM默认的mixed模式下JAVA既不完全是解释运行也不...先给结论:
class(字节码)文件经过JVM编译成机器码进行解释执行(解释执行)。对于热点代码,JIT(JustInTime)编译器会在运行时将其编译为机器码执行(编译运行)
所以在JVM默认的mixed模式下JAVA既不完全是解释运行也不完全是编译运行。
正文:
许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,在本章中,我们先来探讨一下在解释执行时,虚拟机执行引擎是如何工作的。
解释运行: 通过解释器执行,一边对程序进行翻译,翻译成计算机可以执行的指令,一边交给计算机执行,翻译一句执行一句。
编译运行: 通过即时编译器产生本地代码执行。对整个程序先翻译成计算机可以理解的指令,然后计算机可以直接执行。
解释执行
Java语言经常被人们定位为“解释执行”的语言,在Java初生的JDK 1.0时代 ,这种定义还算是比较准确的, 但当主流的虚拟机中都包含了即时编译器后,Class文件中的代码到底会被解释执行还是编译执行,就成了只有虚拟机自己才能准确判断的事情。再后来 ,Java也发展出了可以直接生成本地代码的编译器[如GCJ」(GNU Compiler for the Java )] ,这时候再笼统地说“解释执行”,对于整个 Java语言来说就成了几乎是没有意义的概念。
只有确定了谈论对象是某种具体的Java实现版本和执行引擎运行模式时,谈解释执行还是编译执行才会比较确切。
一、你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。
二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。
三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。不论是解释还是编译,也不论是物理机还是虚拟机,对于应用程序,机器都不可能如人那样阅读、理解 ,然后就获得了执行能力。大部分的程序代码到物理机的目标代码或虚拟机能执行的指令集之前,都需要经过图8-4中的各个步骤。如果读者对编译原理的相关课程还有印象的话,很容易就会发现图8-4中下面那条分支,就是传统编译原理中程序代码到目标机器代码的生成过程,而中间的那条分支,自然就是解释执行的过程。
如今,基于物理机、Java虚拟机,或者非Java的其他高级语言虚拟机(HLLVM )的语 言 ,大多都会遵循这种基于现代经典编译原理的思路,在执行前先对程序源码进行词法分析和语法分析处理,把源码转化为抽象语法树( Abstract Syntax Tree,AST)。对于一门具体语言的实现来说,词法分析、语法分析以至后面的优化器和目标代码生成器都可以选择独立于执行引擎,形成一个完整意义的编译器去实现,这类代表是C/C++语言。也可以选择把其中一部分步骤(如生成抽象语法树之前的步骤)实现为一个半独立的编译器,这类代表是Java 语言。又或者把这些步骤和执行引擎全部集中封装在一个封闭的黑匣子之中,如大多数的JavaScript执行器。
图8-4 编译过程
Java语言中 ,Javac编译器完成了程序代码经过词法分析、语法分析到抽象语法树,再遍历语法树生成线性的字节码指令流的过程。因为这一部分动作是在Java虚拟机之外进行的, 而解释器在虚拟机的内部,所以Java程序的编译就是半独立的实现。
参考:
Java虚拟机
https://blog.csdn.net/weixin_38338099/article/details/83315820
-
Java编译和解释执行对比及原理解析
2020-08-19 05:23:13主要介绍了Java编译和解释执行对比及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
|Java语言是面向对象的、解释执行的网络编程语言|ava语言具有可移植性,是与平台无关的编程语言。
2021-02-26 15:56:12|Java语言是面向对象的、解释执行的网络编程语言|ava语言具有可移植性,是与平台无关的编程语言。答:Java语言是面向对象的、解释执行的网络编程语言新生儿硬肿症时硬肿多先起于:答:下肢外侧对视图的描述错误的是:...下面说法不正确的是: Java语言可对内存垃圾自动收集。|Java语言执行时需要Java的运行环境。|Java语言是面向对象的、解释执行的网络编程语言|ava语言具有可移植性,是与平台无关的编程语言。
答:Java语言是面向对象的、解释执行的网络编程语言
新生儿硬肿症时硬肿多先起于:
答:下肢外侧
对视图的描述错误的是: 可以像查询表一样来查询视图|视图存储的是视图中的数据|视图存储的是视图的定义|视图是一张虚拟的表
答:视图存储的是视图中的数据
项目计算期
答:投资项目从投资建设开始到最终清理出售整个过程的全部时间,称之为项目计算期(记作n)其中从投资建设开始到完工投产时间为建设期(记作s),从完工投产至项目终结点的时间为生产经营期(记作p)。
在《民主与领袖》中,在白璧德看来,一个国家的前途与命运取决于_______。
答:领导者的品质
智慧职教: 导游人员按劳动就业方式,可分为( )。
答:旅行社专职导游人员 兼职导游人员 业余导游人员 自由执业导游人员
以下有关实验室用电的注意事项中,不正确的是( )
答:电源或电器设备的保险丝烧断后,可以用其它金属导线代替
There has been a large( grow)________ of light industries during there years.
答:growth
微型空气质量监测仪如何优化数据处理功能?(1.0分)
答:在节点做智能判断
甲型流感病毒免疫原性易发生变异的结构成分是
答:E.HA和NA
在计算机网络中,有线传输介质包括______ 、_______ 和_______
答:同轴电缆 双绞线 光纤;
洁净室有以下几种类型()
答:紊流型 并用型 层流型
下列与先张施工有关的机具有
答:电动螺杆张拉机 锚具 弹簧测力计 锥锚式千斤顶
梅奥认为,在共同的工作过程中,人们相互之间必然发生联系,产生共同的感情,自然形成一种行为准则或惯例,要求个人服从。这就构成了 ( )
答:非正式组织
如果市场上短期国库券的利率为6%,通货膨胀率为2%,风险收益率为3%,则下列说法中不正确的有( )
答:如果无风险收益率为6%,则资金时间价值为1% 如果无风险收益率为6%,则必要收益率为11%
中国大学MOOC: 可用于高等级路面的基层材料是( )。
答:二灰稳定粒料
ScienceDirect全文文献数据库高级检索界面包括哪些限制条件?
答:作者 参考文献 文章类型 ISSN或ISBN
在平面图中配置双层钢筋时,底层的钢筋弯钩应( )
答:向上或向左
Windows系统中的回收站一般放在( )中
答:硬盘
智慧职教: 下列关于脂肪酸碳链延长系统的叙述哪些是正确的(多选)(? )
答:动物的内质网酶系统催化的脂肪酸链延长,除以CoA为酰基载体外,与从头合成相同; 动物的线粒体酶系统可以通过β氧化的逆反应把软脂酸延长为硬脂酸; 植物的Ⅱ型脂肪酸碳链延长系统分布于叶绿体间质和胞液中,催化软脂酸ACP延长为硬脂酸ACP,以丙二酸单酰ACP为C2供体,NADPH为还原剂; 植物的Ⅲ型延长系统结合于内质网,可把C18和C18以上的脂肪酸进一步延长。
五停心观之一是不净观。()
答:√
-
Python语言是编译型语言还是解释型语言?(Python程序执行过程)
2019-06-22 16:06:38Python是一种解释型语言 Python程序源码不需要编译,可以直接从源代码运行程序。Python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM)中进行执行。 下面用一张图来解释这个过程: 当... -
python是弱类型语言-python 基础认识,弱类型,解释执行
2020-10-29 20:24:44首先我们先进入电脑的控制台输入 python3 进入 python 解释器模式。例如我以 Mac 为例 在 iTerm 终端输入 python3 会进入解释器模式。Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21)[Clang 6.0 (clang-... -
Python程序的执行过程(解释型语言和编译型语言)
2018-03-30 11:41:10Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是Python是一门解释型语言,我就这样一直相信下去,直到发现.pyc文件的存在,如果真是解释型语言,那么生成的.pyc文件的是什么呢?c应该是... -
执行python语言的三种方式(解释器,交互式,集成开发环境等)详解 简单易懂~
2021-07-14 16:25:07Python文件执行的三种方式: (1)解释器的形式:解释器 +即将被执行的文件。 (2)交互式 (ipython):直接在终端中运行python解释器,不需要传入任何python的文件名。直接在python的shell中输入相应的python的... -
python属于解释语言吗
2020-09-16 17:25:53在本篇文章里小编给大家分享了关于python关于是否为解释语言的知识点,有兴趣的朋友们可以学习下。 -
java是解释执行还是先编译后执行?
2020-12-15 13:04:46java是解释执行还是先编译后执行?java -version的输出;Hotspot虚拟机的两种模式:server模式和client模式;java解释器和编译器共存;JIT即时编译器 -
【单选题】下列说法错误的是A. 源程序不能被计算机系统执行 B. 汇编语言、高级语言写的程序都是源程序 C. ...
2021-05-25 08:16:38( )列说议程设置理论在哪个效果论之下被探讨()从血流动力学综合分析,法错符解否以下哪项最可能导致心功能不全?( )中国大学MOOC: 外币交易应当在初始确认时将外币金额折算为记账本位币金额,否释程验可以采用... -
编译和解释_将高级语言编写的程序翻译成机器语言程序,采用的两种翻译方式是
2021-07-20 02:08:23正确答案: A编译和解释题目:将高级语言编写的程序翻译成机器语言程序,采用的两种翻译方式是解析:编译和解释是将高级语言编写的程序翻译成机器语言程序的两种方式。举一反三的答案和解析:[单选题]计算机软件系统... -
JAVA到底是解释型语言还是编译型语言
2021-05-25 08:56:59JAVA到底是解释型语言还是编译型语言以下文字资料是由(历史新知网www.lishixinzhi.com)...JavaScript到底是解释型语言还是编译型语言编译型语言是把原始码先编译为机器码(也就是所谓的可执行程式,比如windows系统的... -
Java到底是编译型语言还是解释型语言?
2019-01-25 08:37:12Java这个语言很神奇: 你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释... -
编译型语言和解释型语言的区别
2019-10-14 15:39:57编译型语言和解释型语言之间的区别 最近也是在学习Python的时候,才发现自己还不太理解编译型语言和解释型语言的区别。 今天,自己给总结一波,也算是加深一下印象。 首先,咱得了解编程语言是干嘛的。(我... -
使用Java实现语言解释器.doc
2021-02-26 17:21:22使用Java实现语言解释器.doc使用Java实现语言解释器.doc使用Java实现语言解释器.doc使用Java实现语言解释器大多数程序员都曾经梦想着创造自己的计算机语言。坦率地说,能够创造、控制、增强和修改属于自己的计算机... -
高级语言是如何运行的——语言的运行方式
2022-03-14 01:01:28高级语言的运行方式有两大类,一类是直接把我们的高级语言的代码...另一种就是再为我们的高级语言专门写一个程序,这个程序的作用就是解释执行我们的高级语言的代码;采用这种方式运行的语言我们称之为解释执行的语言。 -
python是什么类型的编程语言?
2021-02-10 10:09:21Python是一种计算机程序设计语言,是一种面向对象的动态、强类型脚本语言(解释型语言)。强类型:不允许不同类型相加动态类型:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候脚本语言:一般... -
编译执行和解释执行的区别
2019-04-21 21:27:51文章目录一、二、编译执行过程如下:三、解释执行:shll脚本的虚拟机。(下面有更具体的JVM的内容) 字节码:字节码是已经经过编译(.class文件),但与特定机器码无关,需要解释器... -
电脑是怎样执行编程语言的
2017-06-03 17:07:06下面是原回答: 这个问题真的是很大,让我们自顶向下的解释。 在顶层,程序员编写出来的都是源代码。源代码可以使用各种高级语言写成,例如 c/c++ c# java python等等;也可以使用对应平台的低级语言... -
python是一种解释型语言吗-python属于解释型语言么
2020-11-11 14:43:43通常的说法,编译代表着将一个高级语言转化为 CPU 能执行的机器码。当你编译 C 的时候,的确是做的这样的操作。编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。与此相对的,解释的意思是这样的... -
什么是编译型语言和解释型语言和他们的优缺点及为什么解释型语言可以跨平台而编译型语言不行
2018-11-17 20:34:48而高级语言主要又分为编译型语言和解释型语言,下面我们主要讨论这两种语言的含义。 编译型语言指使用专门的编译器,针对特定的平台(操作系统)将高级语言源码一次性“翻译”成可被该平台执行的机器码(包括机器... -
由机器语言到高级语言-程序编写和编译练习题答案解析.docx
2020-11-10 15:46:39第6章 由机器语言到咼级语言程序编写与编译 1关于计算机语言下列说法不正确的是 所有源程序最后都需被转换为汇编语言程序机器才能够执行 所谓高级语言和低级语言是指其和机器硬件的相关程度不涉及机器硬件的语 言为... -
java语言是解释型语言---一道题的详解
2012-08-05 19:03:10A、Java语言是面向对象的、解释执行的网络编程语言 B、Java语言具有可移植性,是与平台无关的编程语言 C、Java语言不能对内存垃圾自动收集 D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的...