解释型语言和编译型语言
解释型语言是把源代码的每一条语句在运行时通过解释器编译成机器语言(按语句编译,边说边翻译)
编译型语言是将整个源程序代码一次性编译成机器码,机器最直接读这个机器码文件(一次性编译,全说完我再翻译)
编译型语言的特点:
优点:
编译型代码一次性编译,机器在读代码时直接是直接可读的,所以编译型的编码效率比解释型高
缺点:
1、编译修改代码繁琐,修改代码需要重新编译才能运行
2、平台兼容性差,一般无法移植到其他平台
3、排错难,整个文件运行完才会反应错误
语言种类:c、c++
解释型语言的特点:
优点:
1、兼容性好,只要平台有相应的解释器就可以运行(比如在linux系统中输入python即可运行)
2、修改方便,直接修改后就可以编译
3、排错简单,当某一句不能运行时会直接报错
缺点:
每一句代码在运行时都需要经过解释器才能被机器识别,编译效率慢,加长了运行时间
语言种类:Python、Java、JavaScript
强类型语言和弱类型语言
强类型语言:
变量的数据类型一旦确定就无法自动的改变(需要通过类型转换函数强制改变),不同类型的语言之间也无法进行运算
语言种类:Python、Java、C++等
var1 = 1
var2 = '1'
#需要转换后才能运算
print(int(var2)+var1)
弱类型语言:
变量的数据类型可以根据环境的变化而自动进行改变
var1 = 1
var2 = '1'
console.log(typeof(var1))
console.log(typeof(var2))
console.log(var1 + var2)
语言种类:vb、JavaScript等
动态语言和静态语言
动态类型:
变量不需要声明数据类型,同一个变量可以指向不同的数据类型
比如Python中的要定义变量时直接使用:var 变量名 = 数据 即可定义
语言种类:Python、JavaScript
静态类型:
变量需要声明数据类型,同一个变量大多数情况下只能赋值同类型的数据
比如C语言中的要定义整型变量时:int 变量名 = 整型数据
语言种类:Java、C、C++