强类型,弱类型,静态,动态语言

转载 2016年06月01日 16:21:52

静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求. 动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。


1 动态语言和静态语言


  通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。


   1 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。


   2 静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。

 

2 强类型定义语言和弱类型定义语言


  1 强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

     举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

  2 弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
     强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!


    例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/leisure55/archive/2009/09/01/4508315.aspx


相关文章推荐

动态语言与静态语言、强类型与弱类型

1 动态语言和静态语言   通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。    1 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语...

编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别

编译型和解释型。 我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的...
  • lw8410
  • lw8410
  • 2011年04月14日 11:54
  • 2667

动态语言/静态语言和强类型语言/弱类型语言

部分一 statically typed language A language in which types are fixed at compile time.  Most static...

编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言概念详解与区别

编译型和解释型。  我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编...

动态语言和静态语言、强类型定义语言和弱类型定义语言

1、动态语言和静态语言   通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。 (1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编...

动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言

关于如题这几个概念,大部分人应该比较熟悉,但是我昏了好久,所以写下来加深印象。 1. 动态语言 又叫动态编程语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上...
  • Rflyee
  • Rflyee
  • 2015年03月30日 00:06
  • 3767

动态语言和静态语言、强类型定义语言和弱类型定义语言、解释型语言、动态语言、脚本语言的概念区分

1、动态语言和静态语言 通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。 (1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编...

动态类型dynamic和动态语言运行时DLR

1.动态类型与隐式申明的类型或者通过System.Object引用声明的类型有着巨大的不同,动态类型不是强类型的,对于C#编译器通过dynamic关键字声明的数据点可以分配任意初始值,而且可以在声明周...

动态、静态语言,强、弱类型语言

C++是一门强静态类型的语言. 强类型: 变量/对象一定是有类型的, 且变量/对象的类型一旦确定,其类型不再允许更改,不同类型的变量/对象不允许赋值和初始化. 弱类型:变量/对象的类型概念很弱或者...

动态语言和静态语言的区别

动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的,优点为方便阅读,清晰明了,缺点为不方便调试。 静态语言(强...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:强类型,弱类型,静态,动态语言
举报原因:
原因补充:

(最多只允许输入30个字)