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

转载 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. 先定义一些基础概念 Program Errors trapped errors...
  • sisyphus_z
  • sisyphus_z
  • 2016年07月18日 15:25
  • 1734

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

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

弱类型、强类型、动态类型、静态类型语言的区别是什么?

原文:http://www.zhihu.com/question/19918532 类型系统的一些概念,众说纷纭,使用上也比较乱。有些东西,甚至不好严格定义。以下算学术界的一种相对“严格”的...
  • swgshj
  • swgshj
  • 2015年07月17日 10:43
  • 916

强类型语言和弱类型语言

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

强类型语言和弱类型语言

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

强类型语言JAVA与弱类型语言JS的小小认识

从servlet的原理说起,我们知道servlet是不能独立运行的,是需要配合服务器(servlet容器,tomcat之类的)来组合成一个独立的应用。也就是说servlet对象是不被servlet实现...
  • bianhuacx
  • bianhuacx
  • 2015年10月30日 17:29
  • 979

关于OC语言基础的总结

原文地址:http://www.kankanews.com/ICkengine/archives/24423.shtml
  • hengshujiyi
  • hengshujiyi
  • 2014年10月31日 17:04
  • 3308

强类型和弱类型的区别---非正确版

强类型:为所有变量指定数据类型称为“强类型”。 强/弱类型是指类型检查的严格程度的。语言有无类型,弱类型和强类型三种。无类型的不检查,甚至不区分指令和数据。弱类型的检查很弱,仅能严格的区分指令和数据...
  • cjf1002361126
  • cjf1002361126
  • 2016年10月07日 19:32
  • 2695

JavaScript 弱类型浅谈

1,强弱类型的判别;           按照计算机语言的类型系统的设计方式,可以分为强类型和弱类型两种。二者之间的区别,就在于计算时是否可以不同类型之间对使用者透明地隐式转换。从使用者的角度来看,...
  • GitMind
  • GitMind
  • 2016年03月15日 11:58
  • 3293

Java是静态语言也是强类型定义语言

1、动态语言和静态语言   通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。 (1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编...
  • hn_cs_zy
  • hn_cs_zy
  • 2013年09月21日 19:23
  • 1040
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:强类型,弱类型,静态,动态语言
举报原因:
原因补充:

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