编译型和解释型

本文探讨了编译型和解释型编程语言的区别,通过比喻解释了两者的执行方式。编译型语言如C++,在运行前需编译成可执行文件,效率高但移植性差;解释型语言如Python,边解释边执行,移植性强但效率较低。此外,介绍了即时编译器(JIT)的概念,如Java的HotSpot和新的Graal编译器,它们在运行时将字节码编译为机器码,以提高解释型语言的性能。
摘要由CSDN通过智能技术生成

编译型和解释型

编译型:举例:把一本中文玄幻小说全部翻译成英文,然后给美国人看。
其实就是有一个管翻译的程序,可以把我们的代码转换成计算机或系统可以执行的代码。当我们编写完代码后,需要先编译生成可执行文件,然后就可以执行了

解释型:举例:一个有钱的美国人,花钱请一个翻译,给他读中文玄幻小说。
因此,解释型语言在我们运行程序时,是没有可执行文件的,但是有一个解释程序的外壳程序,可以把代码转换成二进制代码,边解释边执行。

由此可见两者的特点:
编译型特点:

  1. 效率高:占资源小,适合复杂的程序。
  2. 移植性不好:需要针对不同的系统编译。

解释型特点:

  1. 效率低:运行一次解释一次
  2. 可移植性好:只要有解释环境,不需要依赖操作系统就可以运行,修改也简单。

常见概念

即时编译器:

在Java编程语言和环境中,即时编译器(JIT compiler,just-in-time compiler)是一个把Java的字节码(包括需要被解释的指令的程序)转换成可以直接发送给处理器的指令的程序。

解释器

(英语:Interpreter),又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转译出来,只像一位"中间人",每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。
2)新一代即时编译器
HotSpot有两个即时编译器,耗时短优化低的客户端编译器C1和耗时长优化高的服务端编译器C2。
JDK10后又加了一个全新的Java编写的即时编译器Graal编译器。用来替代C++写的C2编译器。需要开关激活。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值