05、编译型语言 vs 解释型语言

1、编译型语言

  • 通过**编译器(compiler)源代码****编译成特定的平台的机器码**之后,才能执行的语言。
    • 源程序(用编辑器编写来的源代码,英文代码) – 》**机器码**程序 --》 直接操作机器。
      • **机器码**包含了大量的机器指令。
    • 平台有:windows、linux,由于不同平台的**机器指令**各有差别。
      • 因此,编译生成的机器码程序通常只能在特定的平台运行,就是**不跨平台**。
  • 一般需经过**编译(compile)、链接(linker)**这两个步骤。
    • 编译是把源代码****编译成特定的平台的机器码
    • 链接是把各个模块的机器码和依赖库串连起来生成可执行文件
  • 优点:
    • 可以针对特定的平台优化,因此,性能可以得到改善。
  • 缺点:
    • 编译生成的程序,只能在特定的平台上运行。不能跨平台。
  • 代表语言:C、C++

2、解释型语言

  • 不需要编译,在**运行程序时,需要逐行翻译****特定平台的机器指令**。
    • 源程序(用编辑器编写来的源代码,英文代码) --》 windows 平台(经过一个“翻译工具”,将该源代码“翻译”成特定平台的机器指令。该翻译工具被称为**解释器**)。
  • 优点:
    • 通常可以跨平台。
  • 缺点:
    • 需要为不同的平台提供解释器。
    • 每一次运行的时候都需要一次解释(转换为机器指令)性能略差。
  • 代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby。

3、编译 和 解释型语言

  • Java 语言
    • Java 既需要编译,又需要****解释
  • 编译(javac 命令
    • 源程序(用编辑器编写来的源代码,英文代码) --》 二进制码(与平台无关的)并非特定平台的机器码 --》 windows平台。过解释,转换成 windows 平台的机器码。
  • 解释运行(java
    • Java 程序的解释,由 JVM (java 虚拟机)完成。
    • 如果需要运行 Java 程序,一定要为该平台安装 JVM 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值