为了区分动态语言和静态语言,最流行的词汇之一是:尽可能静态地打字,必要时进行动态打字。

动态或静态重点是实现类型的时间。在编制,我们必须确认类型,例如静态类型,C / C++和java或C #,和运行时实现动态类型,如VB / Python。



强或弱的只是强调的实现类型的强度,强类型的语言,如C++等,变量的类型不可随意改变,而弱类型的类型可以用需求任意改变,通常是隐式的。

静态类型语言是一种可以通过编译时变量的数据类型来确定的语言。大多数静态类型语言在使用变量之前都需要声明数据类型。一些具有类型推断能力的现代语言可能会部分地降低这种需求。

动态类型语言是一种在运行时决定数据类型的语言。在使用变量之前,不需要类型声明,通常变量的类型是分配的值的类型。

强势语言是一种语言,一旦变量的类型被确定,就无法转化,事实上,所谓的貌似似的转换是通过中间变量来实现的,而原来的变量类型是肯定不会改变的。

弱类型语言,反过来说,变量的类型由其应用程序上下文决定。例如,一个字符串的直接支持和一个语言的整数可以直接用+号来完成。当然,在支持操作符重载的强类型语言中,它也可以在外部完成,但这是完全不同的。

一般来说,java / Python是一个强大的类型,和VB、Perl / C是一种弱类型。

然而,与动态静态语言的分类相比,强类型弱类型更是一个相对概念。