代码改变世界

编程语言的阴阳之争

2014-04-07 12:58  Web蜘蛛侠  阅读(467)  评论(0编辑  收藏  举报

动态语言:是指程序在运行时可以改变其结构:新的成员函数可以被引进,已有的成员函数可以被删除,新的成员属性可以被引进,已有的成员属性可以被删除,等在结构上的变化。

强类型语言和弱类型语言:

在C和Java语言中,变量在使用之前都是要声明其类型的,如果不在使用前声明该变量,那么,在后面的部分我们将不能再使用该变量。像这样的语言, 我们称之为强类型语言,与之相对应的就是弱类型语言了,就如同php语言。在使用变量过程中,不必向 PHP 声明该变量的数据类型。根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型。

      相对而言,这也就会有人想强类型语言和弱类型语言有哪些方面的不同,既然声明方式不同,那么自然也就说明在后台的运行也会有不同。“强”或“弱”其实也是在强调实施类型的强度,强类型的语言,如C++等,变量的类型不可随意转换,例如你不能将整数型变量随便转换成字符型变量;而弱类型的语言,变量的类型可以随需要任意转换,而且通常都是隐式的。还有不同之处,就是在语言运行过程中的不同——弱类型语言将类型检查放到了运行时,而强类型语言则在编译期执行这些约束检查,有利于提早发现错误(不属于bug)并减轻了运行时负担。弱类型则必须借助测试才能有效减少这些类型的错误。(弱类型实际上降低了的是程序员对要解决问题了解程度,程序员对要解决问题的了解越浅,构筑的模型就越模糊,就上手编程出的问题就更多。)所以,弱类型语言虽然在书写代码的过程中减少了部分的麻烦,但是在后期的执行过程中可能会增加处理器的运行压力,而强类型语言虽然在前期的编码过程中是比较麻烦的,但是同时也为将来后台的运行提供了方便……