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

一。编译性语言

(1)只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可以;因此其执行的效率比较高; (从编译次数这个角度)
(2)编译性语言代表:C、C++、Pascal/Object Pascal(Delphi);
(3)程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些;(效率)

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

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

 

2、解释性语言 

源代码—>中间代码—>机器语言

      (1)源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行

  • (2)程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次;
  • (3)解释性语言代表:Python、JavaScript、Shell、Ruby、MATLAB等;
  • (4)运行效率一般相对比较低,依赖解释器,跨平台性好

3.两者比较 

  • (1)一般,编译性语言的运行效率比解释性语言更;但是不能一概而论,部分解释性语言的解释器通过在运行时动态优化代码,甚至能使解释性语言的性能超过编译性语言;
  • (2)编译性语言的跨平台特性比解释性语言一些;

4、java是编译性语言还是解释性语言?

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

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

 

 

原文链接:https://blog.youkuaiyun.com/yuanziwoxin/article/details/82872792

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值