编译型语言和解释型语言的区别

1. 编译型语言

  • 编译型语言的概念:

程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。------百度百科

  • 常见的编译型语言有:C、C++、Swift、Kotlin、Objective-C 等等
  • 编译型语言一般根据操作系统的不同而具有特定的编译器,而后将程序编译成当前系统硬件能够识别的机器码,所以编译后的代码所生成的可执行程序只能在特定系统平台上运行,不受开发环境限制。因此在不同系统平台上运行往往需要再次编译,故跨平台性较差。

2. 解释型语言

  • 解释型语言的概念:

程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程 序,每个语句都是执行的时候才翻译。(在运行程序的时候才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨 平台性好.----百度百科

  • 解释型:有专门的解释器,对源程序逐行解释成当前系统平台的机器码并
    立即执行的语言。

  • 常见的解释型语言有:JavaScript、Ruby、Python 等等。

  • 与编译型相反,由于其只需要一个解释器即可,故跨平台性较强,只需要相关系统平台上有相关解释器即可。

3. JAVA既是编译型语言也是解释型语言
在这里插入图片描述

  • Java 语言非常特殊,Java 源程序也会经过编译,但编译后不会生成特定平台的机器码,而是会生成一种与平台无关的字节码文件。但字节码文件不可执行,如果要执行,需要使用 Java 解释型器来解释执行。所以,Java 程序的执行过程,必须经过先编译、后解释两个步骤。

  • Java 中负责解释执行字节码文件的是 Java 虚拟机,也叫可运行 Java 字节码文件的虚拟计算机,简称 JVM(Java Virtual Machine)。它是一个抽象的计算机,具有指令集并使用不同的存储区域,负责执行指令,还要管理数据、内存和寄存器。

  • 所有平台上的 JVM 向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能够理解的代码,然后由虚拟机来解释执行。

  • Java 生成的字节码文件,只面向 JVM,这样做的目的就是为了能够实现它跨平台的特性。只要为不同平台实现了相应的虚拟机,编译后的 Java 字节码就可以在该平台上运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值