解释性语言和编译性语言

每种语言都具有解释性和编译性两种属性

日常说它是解释性/编译性语言,仅仅是它常被用作的状态

计算机不能直接理解高级语言,只能直接理解机器语言

所以需要将高级语言翻译成机器语言,计算机才能执行高级语言编写的程序

翻译的方式有两种:

  • 一种是编译
  • 一种是解释

两种方式的区别在于 翻译的时间不同

编译性语言

  1. 在程序执行之前,通过专门的编译过程,将程序编译成机器语言。只需编译一次,后面再次执行时无需重新编译,直接使用之前的编译结果就可以(如:exe文件);因此执行效率高
  2. 编译性语言代表:C、C++、Pascal/Object Pascal(Delphi);
  3. 比较依赖编译器,因此跨平台性较差。

不同平台对编译器影响较大:

  • 16位系统下int是2个字节(16位),而32位系统下int占4个字节(32位);
  • 32位系统下long类型占4字节,而64位系统下long类型占8个字节。

解释性语言

  1. 程序在运行时才翻译成机器语言,每执行一次就翻译一次;
  2. 源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行;源代码 → 中间代码 → 机器语言;
  3. 解释性语言代表:python、JavaScript、shell、ruby、MATLAB等;
  4. 运行效率一般相对较低,依赖解释器,跨平台性好

Java

java语言应是编译性-解释性语言,因为其同时具备编译性和解释性两种特性;

  • java文件先编译成与平台无关的.class的字节码文件
  • 然后.class的字节码文件既可以在Windows平台上的java虚拟机(JVM)上进行解释运行,也可以在Linux平台上的JVM上解释运行;JVM的翻译过程时解释性的;
  • ​​​​​​​JVM从.class的字节码文件中读出一条指令,翻译一条指令,然后执行一条指令,这个过程就称为java的解释执行

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值