1,我门常见的
编译型语言: C,C++,OC等.
解释型语言:Java,Ruby等.
脚本语言:Python,JS,PHP等
2,三者的差别在于:
(1)编译型要比解释型语言运行起来更快,这也是为什么我们做游戏开发时用C,C++,而不用Python等的原因.
eg:你要是做个枪战游戏跑的太慢的话,人都可以和子弹赛跑了,那还玩什么枪战啊?
(2)解释型语言是非独立的,且效率低(注意了,这里说的是解释型语言,你别看成了编译型的了!).而且编译型语言一般是直接可以转换为汇编语言的,但解释型语言是需要一个虚拟机一样的东西,才能转换为汇编语言.例如java中就需要JVM,来进行汇编语言的转换.
(3)二者编译时机制的区别:编译型是一次性把所有代码都给编译完,但解释型是你写一行代码它编译一行(当某一行出现错误时,会停止执行其他语句,并立即报错.这点与脚本语言有所不同).
所以说解释型语言跑起来会比较慢.但解释型语言有其最大的优点,就是它改错要比编译型语言编写的代码快很多.
eg:在过去写C的程序员,改一个小错误估计都得需要半天,因为编译型语言的特性是一次性把所有代码全进行编译,这就导致了你无法直观的看出是哪行代码出错了.
逐渐的解释型语言也就诞生了,因为它是你写一句就编译一句,所以你找错误可以直观的看到你是哪句出错了啊!
(4)脚本语言是一句一句执行的,你上一句的错误不一定会影响下一句的正常执行.
//这里的c并没有定义,因此程序执行时会在var b = c,这里报错.
var b = c;
var a = 2;
//结果仍为2,因为脚本语言是一句一句执行的,在var b = c这里发现错误时,
//会跳过该错误,正常执行下一句,直到执行完所有语句后,再报出该错误
console.log(a);