2020.9.12-9.25/面向对象程序设计/概念区分

一、编译型语言与解释型语言

编译型语言与解释型语言的概念

计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种: 1.编译 2.解释
由此高级语言也分为编译型语言和解释型语言。

编译型语言

程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++等。

解释型语言

程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如Python、JavaScript等都是解释型语言。

编译型语言与解释型语言的区别

所谓的“解释性”和“编译”指的是执行机制上的不同。解释性语言是指它常用的执行机制是使用一个“解释器”来执行,解释器对于程序是一句一句“翻译”成机器语言来一句一句执行。编译型语言是指它常用的执行机制是使用一个“编译器”来编译成机器语言,然后你就可以直接运行(执行)这个编译成的“可执行文件”。

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

动态类型语言

动态类型语言是指在运行期间才去做数据类型检查的语言,说的是数据类型,动态语言说的是运行是改变结构,说的是代码结构。动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。主要语言有Python、JavaScript等。

静态类型语言

静态语言的数据类型是在编译其间确定的或者说运行之前确定的,编写代码的时候要明确确定变量的数据类型。主要语言有C、C++、C#、Java等。

动态类型语言与静态类型语言的区别

静态类型语言的主要优点在于其结构非常规范,便于调试,方便类型安全;缺点是需要写更多的类型相关代码(如声明变量),不便阅读。动态类型语言的优点在于方便阅读,不需要写非常多的类型相关代码;缺点是不便调试,命名不规范时会造成读不懂,不利于理解等。

三、强类型语言与弱类型语言

强类型语言

强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。java、C、C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。

弱类型语言

弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php等属于弱类型语言,是数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。例如:在vbscript中,可以将字符串 12 和整数 3 进行连接得到字符串 123,然后可以把它看成整数 123,而不需要显式转换。弱类型有时显得很方便,有时却又极易出错。故使用弱类型语言也要格外注意数据类型防止出错。

强类型语言与弱类型语言的区别

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。

四、参考链接

编译型语言与解释型语言的真正区别
https://blog.csdn.net/xwx_100/article/details/83212067
什么是编译型语言和解释型语言
https://blog.csdn.net/u012184539/article/details/81348780
动态类型语言和静态类型语言
https://blog.csdn.net/hellojoy/article/details/80435738

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值