编译型语言vs解释型语言,还有JIT是什么鬼?

编译型语言vs解释型语言,还有JIT是什么鬼?

1)编译型vs解释型

高级编程语言,按照程序的执行方式分为两种。一种是编译型语言,一种是解释型语言。

编译型

编译型语言会通过编译器将源代码一次性翻译成机器码,然后执行。一般编译型语言执行速度比较快,常见的编译型语言有C、C++等。
编译型语言

解释型

解释型语言会通过解释器一句一句地将源代码解释成机器码并执行,一般解释型语言开发效率比较高。常见的解释型语言有Python、JavaScript等。
解释型

小结

可以发现无论是编译型语言还是解释型语言都是将源代码译成机器码才能执行,其区别在于一个是执行前先行编译(编译型),一个是执行期间动态解释(解释型)。
两者小结

那为什么得翻译成机器码才能执行呢?

因为计算机只能直接识别和执行特定的指令集,这些指令集就是机器码。源代码本质上只是一些文本,只有翻译成机器码才算是一个指令或者说一个程序。

2)JIT(即时编译)

为了结合两种类型的有点,发展出了即时编译(Just IN Time,JIT)让编译与解释并存。它像编译型语言一样,先把源代码编程成字节码,到执行期间再将字节码直译,然后执行。Java就是这种类型的代表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值