编译型语言和解释性语言

计算机是不能直接理解高级程序语言的,它只能理解机器语言,所以高级程序语言想在计算机上运行,都需要转化成计算机语言,也就是机器码,这种转化方式有两种:

1.编译

2.解释

区别在于编译型语言的源程序在编译后即可在该平台运行,解释性语言的源程序通常在运行期间才编译,所以前者的执行效率快,后者的跨平台性好。

 

编译型语言

解释性语言

 

简介

使用专门的编译器,在指定平台运行,将高级程序源代码一次性编译成可被该平台执行的机器码,并包装被该平台所能识别的可执行程序的格式。

使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行,在执行时才被解释器逐行动态翻译和执行,而不是在执行前就完成翻译。

 

特点

在执行之前,需要将源代码编译成机器语言的文件,如exe格式的文件,以后再运行时,直接运行exe文件,只需要编译1次,以后运行不需要编译,执行效率高。

执行之前不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只需要某一平台提供相应的解释器即可,跨平台性好。

 

总结

  1. 一次性的编译成与平台相关的机器语言文件,运行时脱离开发环境,运行效率高;
  2. 与特定平台相关,一般无法移植到其他平台;
  3. C、C++等都属于编译型语言。
  1. 每次运行都需要将源代码解释成机器码并执行,运行效率低;
  2. 只需要平台提供相应的解释器就可以运行,跨平台性好;
  3. Python等属于解释性语言。

        

 

                           

关于java

Java和其他的语言不太一样。因为java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。

1.你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 

2.你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。 

3.但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。

                                   

                              

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值