“编译型”和“解释型”语言的不同

编译型语言:例如C语言,在执行之前都要进行编译,编译的过程就是把源代码转换成电脑可执行的二进制文件,说的专业就是编译。
(编译型语言不容易移植,如果在linux上编译好运行,如果在放到windows上的话还得重新编译一遍才可以运行。)
 
解释型语言:一边编译,一边执行。
 
(解释型语言容易移植,在linux上移植到windows上不用修改直接可以运行)
优点与缺点:编译型语言一次编译到处执行,而解释型语言边编译,边执行,所以解释型语言要比编译型语言慢几百倍的速度都不足为奇。
趋势语言:JAVA语言虽然接近解释型语言,但是在执行之前需要进行一次预编译,生成的代码是介于机器码和JAVA代码之间的中介码,运行时候有JVA(java虚拟机平台,可视为解释器,)解释执行,它既保留源代码的高抽象,又已经完成了对源代码的大部分预编译工作,所以执行起来要比“纯解释型”快很多。
 
动态类型和静态语言
1)动态类型语言在每次声明变量时不需要指定数据类型(python和Ruby属于典型你的动态类型语言)
2)静态类型语言在每次生命变量时需要指定数据类型,(C#[c sharp(c夏普-音译)]、JAVA属于静态类型语言)
 
强类型定义语言和弱类型定义语言
1)强类型定义语言,也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它永远就是这个数据类型了。(python,强类型定义语言是安全的语言)
举个例子:如果定义a变量是整数类型,那么解释器不可能将它作为字符串处理。
2)弱类型定义语言,也就是说,数据类型可以被忽略。一个变量可以赋予不同的数据类型。(Shell编程)
总结:python是一门动态型,强类类型、强类型的语言。

猜你喜欢

转载自www.cnblogs.com/pengfei999/p/9585623.html