编译型与解释型语言、动态与静态类型语言、强与弱类型语言

编译型语言与解释型语言

编译型语言:
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
特点:
在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。
总结:
1)一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;
2)与特定平台相关,一般无法移植到其他平台;
3)现有的C、C++、Objective等都属于编译型语言。

解释型语言:
使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
特点:
解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。
总结:
1)解释型语言每次运行都需要将源代码解释称机器码并执行,效率较低;
2)只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;
3) Python等属于解释型语言。

编译型语言通过特定的平台对代码一次性编译成计算机语言,而后由计算机直接执行相对而言运行的效率高。
而解释型语言对代码逐行进行编译再由计算机执行相对而言效率较低,但方便不同平台移植。

动态类型语言与静态类型语言

静态类型语言中,变量的类型必须先声明,即在创建的那一刻就已经确定好变量的类型,而后的使用中,你只能将这一指定类型的数据赋值给变量。如果强行将其他不相干类型的数据赋值给它,就会引发错误。

动态类型语言中,没有严格的赋值限制,你将什么类型的数据赋值给变量,这个变量就是什么类型。

动态类型语言有:PHP 、 Ruby 、Python
静态类型语言有:C 、 C++ 、 JAVA 、 C#

总结:动态类型语言与静态类型语言是计算机对编程语言赋值的容忍程度。

强类型语言与弱类型语言

强弱语言的区分体现在计算机语言对类型是否能进行两种隐形转换上,相关类型之间隐式转换和不相关类型之隐式间转换。

相关类型之间隐式转换:一个int类型的数据与一个float类型的数据相加,最终的结果是一个float类型的数据,这个过程就发生了隐式类型转换,int类型数据首先被转成float类型,然后与另一个float进行操作,这便是相相关类型之间隐式转换。

不相关类型之隐式间转换:一个int类型数据与一个字符串类型数据相加,竟然没有发生错误,得到的结果是一个字符串,int类型数据隐式转换为字符串,可他们原本是两个不相干的数据类型,这种就是第二种隐式转换。

弱类型语言有:PHP、Perl
强类型语言有: JAVA 、C 、C++ 、 Python

总结:强类型语言与弱类型语言体现在对类型的检查严格程度上,在弱类型语言中,变量可以隐式强制转换为不相关类型,而在强类型语言中则不可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值