脚本语言与解释型语言、静态语言与动态语言、强类型与弱类型

脚本语言两大特性:一、解释执行 二、执行文件为文本。

脚本语言是解释型的语言,也就是解释型语言包括脚本语言。解释语言是说解释执行的语言,但执行的代码并不一定是文本格式的,比如Java程序编译后的执行就是解释执行,但是这时执行的代码是字节码不再是文本格式的,所以就不算脚本语言了。

 脚本语言的程序是文本文件,并且是解释执行的。

其实,与解释型语言相对应的是编译型语言。这种分类是基于程序如何执行的分类。

下面说说静态语言和动态语言。这个分类我也是经常迷惑不已。

动态语言:由于结构可变,结构一般是函数(函数在语言中是有类型的),所以动态语言的函数没有类型,函数可以赋值给函数变量。由此带来了变量也是没有类型的(这就是动态类型:类型是不是合法的要到运行时才判断的)也即导致运行时最好采用解释性运行方式。

静态语言:结构固定,所以运行要求快,所以人们一般采用编译式运行,直接运行二进制代码,采用静态类型

其实,我觉得对于动态语言和静态语言,基本可以理解为动态类型语言和静态类型语言。这样就好理解很多了。

  • 动态类型语言的优点是不需要写多种数据类型的代码,代码相对简洁一些,方便代码阅读。缺点是不方便调试,代码命名也容易混淆;
  • 静态类型语言的优点是方便调试,代码相对规范。缺点是需要写很多数据类型相关的代码,代码不够简洁。

最后说说强类型与弱类型。

弱类型:语言提供大量,用作类型转换的潜规则,使得运行时大部分类型转换都会成功。

强类型:类型转换潜规则较少,尽量不允许未授意的类型转换。

静态类型:编译期进行数据类型检查。
动态类型:运行期才做类型检查。动态类型语言可以不声明类型,但是不代表就可以随意转换类型,类型确定后是不能随意转换的,所以也有强类型弱类型之分。

preview

C\C++是弱类型的原因是:允许的操作太过自由,所以大部分的强制类型转换都会成功,即使类型完全不对应。

综上所述,Java是一门静态的、强类型的、半编译半解释的编程语言。Python是一门动态的、强类型的、解释型的脚本语言。

发布了63 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sinat_30955745/article/details/105091939