解释型语言一个一般的特征是程序员不需要指定数据的类型,或者说不需要先定义再使用,如VB,Javascript等,这和C/C++这些编译型语言是不同的。解释型语言会根据数据本身和程序上下文关系自动选定一个合适的数据类型,也就是说合适的内存大小,合适的二进制编码等。这当然带来了简单方便,变量拿来就用,这是一个好处,但是坏处是,因为多了一个解释程序自动判断数据类型的过程,所以在速度上肯定会有所打折。我猜测,所有解释型语言应该都是没有数据类型的。
那为什么编译型语言不学习这个优点呢?我认为,因为编译型语言在程序运行之前已经全部编译完成,而不是一步一步编译完成(解释)的,所以有一些未知因素还没有确定的,这些要实际运行了才能确定,所以很难自动判断数据的类型,所以要程序员自己定义数据类型了。