编程语言的运行机制

先举个例子,如果一个美国人想看《西游记》但他不懂中文,这时候他会有这几种办法:

  1. 找西游记的英文翻译版,然后再读。这时候有一个缺点就是,如果说有一处翻译错了,那就得等这本书再版,而且还要去买一本新书,总不能只买翻译错误的那几页吧,而且如果他有个法国的朋友,也想要看《西游记》,但是既不会中文也不会英语,所以他不能直接把这本直接送给这个法国的朋友,只能买一个法语翻译版的《西游记》送给他。

  2. 直接找一个人当翻译,让这个人翻译给他听。这时候如果出现错误,那个翻译就可以直接更正,但是,边翻译边读效率很低,而且费钱。

    这就类似于我们编程语言的运行机制:

编译型

定义:程序在执行之前需要一个专门的编译过程,把程序编译成 为二进制文件,运行时不需要重新翻译,直接使用编译的结果就行了。

缺点:只能在特定的平台。

优点:程序运行更快,性能更好,效率高。

编译型语言有:C、C++等

解释型

定义:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。

缺点:效率较低,依赖解释器、无法脱离开发环境。

优点:跨平台

解释型语言:python、Ruby、js等

编译型+解释型

也有一些语言既是编译型也是解释型。比如java,Java源代码经过编译之后成为一种源文件和机器语言之间的.class字节码文件,然后通过jvm(java虚拟机)可以实现跨平台。这里可能就有人问了,那不还是用解释器吗,还费劲把它编译成.class字节码文件干嘛,但是,有一点可以肯定的是.class字节码文件解释起来一定比源文件要快,所以java通过这种形式在编译型和解释型之间取了个折中,既能跨平台,性能也还不错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值