1. 动态语言与静态语言
1.1 静态类型语言
静态类型语言指的是数据类型是在编译期间检查的,也就是说在写程序时要声明所有变量的数据类型。
例:Java,C,C++
1.2 动态类型语言
动态类型语言指的是数据类型在运行时进行检查的,在使用动态类型语言时,不需要指定数据类型,当对变量进行第一次赋值的时候,该语言会在内部记录其数据类型。
例:Python,Javascript
2. 编译型语言与解释型语言
2.1 编译型语言
编译型语言指的是在程序完成后,对程序进行编译链接后,产生机器能够识别的机器码文件的语言。机器能够运行机器码,效率更高,速度更快。
编译型语言的编译链接过程相当于翻译。面对机器不能识别的代码,编译型语言将代码直接翻译为机器能够识别的机器码。相当于把一本其他语言的书,翻译给你我能够看懂的书。在我们需要浏览时,很快就能定位到我们需要的部分,并且进行阅读。
例:C,C++
2.2 解释性语言
解释性语言指的是在程序完成后,通过解释器对代码进行逐行解释,将代码翻译成机器码。因为解释性语言在运行时才会翻译成机器码,所以相比编译型语言的效率低,速度较慢。
解释性语言的解释过程相当于同声传译。在你需要的时候,才会把代码翻译成机器语言。
例:Python
3. 强类型定义语言与弱类型定义语言
3.1 强类型定义语言
强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
例:Java,Python,C++
3.2 弱类型定义语言
数据类型可以被忽略的语言。 它与强类型定义语言相反,一个变量可以赋不同数据类型的值。该变量可以根据环境进行自动转换,不需要显式的进行强制转换。
例:PHP,JavaScript