问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C/C++,Java,Python谁是编译型语言,谁是解释型语言

发布网友 发布时间:2022-04-26 10:27

我来回答

1个回答

热心网友 时间:2022-04-06 15:32

总的来说,如今编译型语言、解释性语言的分界线不再那么明显,应该避免把语言简单归类为“编译型”和“解释型”。
  我们最开始说C/C++是编译型语言,原因是相对于Ruby这样的解释性语言,C/C++需要通过编译器,把源代码编译成中间文件(.o和.obj),然后通过连接器和汇编器生成机器码,即一系列基本操作序列,可以直接让计算机执行。这些机器码也就是我们通常的exe文件。
  我们以Ruby为例谈一下解释型的语言,程序从源代码到被计算机执行,也要经历上述步骤。不同的地方在于,C/C++会把那些从源代码“变”来的机器码(即exe文件)保存起来,而Ruby直接将这些生成的基本操作序列(Ruby虚拟机)指令丢给Ruby虚拟机执行然后产生动作了。这就是我们所说的解释型语言。
  所以我们看到的现象是,编译型语言要先编译再运行,而解释性语言直接“运行”源代码。
  回到最开始的问题,如果以是“否保存机器码为exe文件”为区分,那么Java和Python都属于解释型语言。
  但具体来讲,Java和Python是有很大不同的。Java代码从源程序到执行,要经过的过程是:编译器(javac)把源代码转化为字节码,然后解释器(Java.exe)把字节码转换为计算机理解的机器码来执行,其过程中没有把“机器码保存为exe”的行为(这样讲也不完全准确,下面会讲到)。其中编译器和解释器都是Java虚拟机(JVM)的一部分,由于针对不同的硬件与OS,Java解释器有所不同,因此可以实现“一次编译、到处执行”。所以JVM是Java跨平台特性的关键所在。
  Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域
  对于Python,其源代码到执行也要经过如下过程:源代码--->字节码--->机器码。跟Java相同的是,其过程中也没有把“机器码保存为exe”的行为。与Java不同的是,Python使用的虚拟机是基于其他语言实现的,比如我们一般使用的Python实际为Cpython,也就是其虚拟机由C实现,这个虚拟机负责把Python源码编译为字节码,再解释执行。另外,还有Jypython、Ironpython等。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你能用一句话表达这个画面吗 专科学高铁乘务专业能找到工作吗 广西理工职业技术学院怎样啊?? 月亮星座怎么配对,月亮星座配对查询爱情 广西理工职业技术学院到底好不好的 最甜蜜的月亮星座组合,最冷血的月亮星座 包子怎么做才松软 包子如何做才松软 包子店的包子发酵怎么这么松软 专做俄罗斯业务的货代公司 大理石地板怎么拖干净又亮妙招 在今后世界中,python,JAVA,c语言那个更重要,其次又是什么?求大神回复 c++ java python区别 nova 4怎么录屏 操作方法说明?谢谢各位 黄鳝阴天吃钩吗? 做黄鳝钩的钢 丝五金店有卖吗?大概1.5到2.0左右粗细 还是网上买好呢? 最古老的捉黄鳝方法 鳝鱼钩如何穿饵料图解 股市里面右侧的买一买二卖一卖二栏里的白色数字是什么意思? 股票软件上的买1买2……卖1卖2……是什么意思?炒股新手 股票中的买一买二卖一卖二等是什么意思,价格后面跟的数字又是什么意思,谁用比较通俗的话说下 股票上的卖一卖二 买一买二是什么意思? 买一买二卖一卖二是什么意思? 什么是卖一,卖二,,,什么又是买一,买二,,, 在股票交易中买一价,买二价还有卖一价,卖二价代表的是什么意思啊?? 股票中的卖一买一卖二买二是什么意思啊? 股票的买一买二卖一卖二是什么?麻烦说的通俗一点谢谢 我在昆明买了一套二手房,用公积金贷款现在想把落户,能否从公积金贷款中心把房产证借出去办理落户手续 股票上的"卖一卖二" 和"买一买二"是什么意思? 男生穿什么颜色袜子好 有个视频男的穿着像裤头一样的袜子卖鞋是什么袜子? java c++ python哪个好 c语言php语言java语言它们跟python语言之间有相同之处吗? Python,java,c++哪个较难? python,C,C++,JAVA入门哪一个好? php,java,c,python 语言各有什么不同 以“禾”为偏旁的字有哪些? 禾字旁有哪些字? 带“禾字旁”的字有哪些? 带禾字旁的字有哪些? 偏旁部首是“禾字旁”的字有哪些? 加盟串串香大概需要多少钱? 我想加盟串串香火锅加盟费多少钱 做哪个牌子串串香的加盟更合适? 投资串串香串串火锅加盟店一般需要多少钱 串串香加盟大概需要多少钱 成都火锅串串香的加盟费一般是多少? 串串加盟竞争大吗?没有经验想开一家串串店 如果创业,开一家串串香加盟店会赚钱吗? 串串香加盟哪个好? 成都串串香加盟怎么样?