编译型语言与解释型语言

在说这两者的区别之前,先要说一下,我们平时编程所用的高级语言都是都是电脑识别不了的(直接写01码的打扰了).所以在机器执行前,需要先将高级语言转化为机器能理解的机器语言.而转化的的的方法大概有这么两种:

一、编译

二、解释

一、编译

先说说大家编译语言的代表语言:C,C++.

这种语言的特点就是多次运行较快.它只需要在机器上进行一次编译,就能得到机器可识别的二进制执行文件(这个可执行文件知识针对当前平台的),并且此后再使用时就不需要进行编译而直接使用了,即执行可以脱离开发环境.此外,编译语言的另一特点就是代码安全度较高.发布软件时只需要提供各个平台的可执行文件即可,不需要公布源码.

但正是这种特性造就了它最明显的缺点:不可跨平台.道理很简单,因为编译型语言的程序是被翻译成特定平台上的机器码.就好比你在win下编译得到的exe文件是不可能在macOS,Linux下跑起来的吧?如果需要移植,只能将源码复制到新平台上,然后重新编译

二、解释

解释型语言的代表就是JS,python还有比较特殊的java.

与编译型语言不同,解释型语言在不需要编译,而是在执行的时候,通过特定的解释器将语言翻译成机器语言.显然这样效率明显不如前者,每次运行都需要解释器一句一句地翻译,但好处就是对不同系统的兼容性更高,只需要提供特定平台上的解释器即可.可以看出,解释型语言的可移植性是以牺牲程序运行效率为代价的.

因为需要翻译,所以执行时都需要源码,代码安全性并不高.

特殊的JAVA

前面之所以说JAVA比较特殊,是因为作为一个解释型语言,它在执行时也经历了编译的步骤.不过这步编译生成的并不是特定平台的机器码,而是与平台无关的字节码(.class文件),然后再由JAVA解释器(JVM)来解释执行.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值