什么是脚本语言?为什么python是脚本语言?而C和JAVA不是? 图解解释型语言和编译型语言区别

225 篇文章 3 订阅
131 篇文章 2 订阅

前言

什么是解释型语言?什么是编译型语言?python是什么类型的语言?JAVA又是什么类型的语言?哪种语言运行效率高?这些问题对于业内人士来说,根本不能算问题,但是对于新手村的码农来说,可能还是有点晕的,我也收到不少这样的提问。语言解释太苍白,那就让我用图像来详细回答一下吧。

第一、解释型语言

解释型语言又叫脚本语言,一言以蔽之,就是需要解释的语言。这似乎是废话?那我们就看看解释型语言的典型代表python程序是怎么运行的吧。

在这里插入图片描述

需要Python零基础学习资料的伙伴,可以在公众号【码农资料库】中回复【py】自行领取 包括以下学习资料:

① Python所有方向的学习路线图,清楚各个方向要学什么东西

Python课程视频,涵盖必备基础、爬虫和数据分析

Python实战案例,学习不再是只会理论

Python电子好书,从入门到高阶应有尽有

⑤ 华为出品独家Python漫画教程,手机也能学习 ⑥ 历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

python源码文件直接就可以运行,也许你会好奇,源码文件是怎么运行起来的?难道CPU也认识我们写的英文关键字吗?当然不是。在运行python程序之前系统会先启动一个python解释程序,可以把这个解释程序理解为翻译官,它会逐条读取我们写的python脚本,然后翻译为CPU可以识别的机器指令。为什么大家都说python的运行效率不行?看完后面两种语言的介绍我们再对比说明。

第二、编译型语言

既然解释型语言是需要解释的语言,那么编译型语言就是不需要解释的语言?NO,不是这个意思。CPU只能识别自己指令集的机器码,所以只有二进制的机器码才是不需要解释的语言。编译型语言也是用英文关键字编写的,所以也要通过软件翻译成机器码,才能运行到CPU上。这里的翻译又叫编译,翻译的软件又叫编译器。编译型语言跟解释型语言的区别在于,它不是在运行的时候才开始逐条翻译的,而是先翻译好了,然后保存到一个文件里面,需要运行的时候,再拿给CPU去执行。我们就看C语言的例子。

在这里插入图片描述

C语言程序写完后,源代码文件是无法运行的,必须经过编译成一个个的机器码文件,然后合成一个大文件,合成一个大文件的操作就叫链接,合成后的机器码文件就可以直接给CPU运行了。

第三、JAVA到底是编译型语言还是解释型语言

这个问题,恐怕会引战。因为即使业内的人,有说它是解释型语言的,也有说它是编译型语言的,公说公有理婆说婆有理。怎么会这样呢?我们还是先看看JAVA程序的运行示意图。

在这里插入图片描述

看明白了吧?JAVA写的源代码也是不能直接运行的,必须经过编译器编译成二进制的字节码才能运行。而编译生成的字节码又不能像C语言编译出来的机器码那样直接运行到CPU上,必须经过JAVA虚拟机程序解释成机器指令才能被CPU识别。

这就是有争论的地方,说它是编译型语言吧,它最后又是运行时才解释的。说它是解释型语言吧,它的源代码又必须经过编译才能运行。所以对于JAVA,你觉得它应该属于编译型语言还是解释型语言呢?欢迎讨论。

第四、哪种语言运算效率高?

这个问题,我想通过上面的介绍,聪明如你应该已经知道答案了吧。

python要执行用户程序,还得先启动一个解释器程序,然后把用户程序逐条翻译成机器码执行,多启动了一个程序不说,每条语句执行前还要花时间解释。C语言程序呢?因为运行前就已经编译成机器码了,所以不用启动额外的程序来解释,直接就上CPU运行了。所以就运行效率来说,python跟C语言完全不是一个数量级的。JAVA就有点特殊了,既要编译,又要启动额外的程序来解释,这么麻烦,肯定连python的尾灯都看不到吧?NO,JAVA虽然也要解释执行,但是它解释的不是自然语言,而是经过格式化处理过的字节码,解释的效率要比python高很多,所以它比python肯定要快,但跟C语言还是没法比的。

怎么样?看到这里是不是已经茅塞顿开了?如果再有人问你,python和JAVA哪个快?或者问你什么叫脚本语言?你就把这篇文章甩给他看。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python被称为脚本语言主要是因为它通常用于编写脚本,也就是一系列需要逐行执行的命令或任务。与编译语言不同,Python代码在运行之前不需要显式地编译为机器码,而是通过解释器逐行解释执行。 脚本语言编译语言的主要区别在于执行方式。编译语言(如C++、Java)的代码在运行之前需要经过编译过程,将源代码转换为机器码二进制文件,然后通过操作系统或虚拟机执行。这种方式可以提高执行效率,但需要在不同平台上重新编译。 而解释型语言(如PythonJavaScript)的代码在运行时逐行被解释器读取和执行。解释器会将源代码转换为中间代码或直接执行,这使得解释型语言具有更好的可移植性,无需重新编译即可在不同平台上运行。然而,解释型语言的执行速度通常比编译语言慢。 脚本语言解释型语言的概念有一定的关联。脚本语言是指用于编写一系列指令或任务的编程语言,而解释型语言是指这些指令或任务在运行时通过解释器逐行执行的编程语言Python既可以作为脚本语言使用,也可以作为解释型语言使用。 需要注意的是,现代解释器通常会使用即时编译(Just-in-Time Compilation,JIT)技术来提高解释型语言的执行效率,这种情况下解释型语言的性能可能接近甚至超过编译语言。此外,编译语言解释型语言在实际应用中也可以相互结合,例如,Python可以使用C语言编写的扩展模块提高执行效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值