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


    1、动态语言和静态语言

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

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

     

    2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#JAVA等。

    对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed

     

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

    1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

     

    2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反一个变量可以赋不同数据类型的值。

    强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,这门语言是不是动态语言这门语言是否类型安全之间是完全没有联系的!


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

     

     

    编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别 
    http://blog.csdn.net/u012050154/article/details/51206731

     

     

    英文释义对比:

    statically typed language

    A language in which types are fixed at compile time. 
    Most statically typed languages enforce this by requiring you to declare 
    all variables with their datatypes before using them. 
    Java and C are statically typed languages.


    dynamically typed language

    A language in which types are discovered at execution time;
    the opposite of statically typed. 
    VBScript and Python are dynamically typed, 
    because they figure out what type a variable is when you first assign it a value

     
  • 相关阅读:
    详细介绍Linux shell脚本基础学习(二)
    MySQL主从复制
    推荐一款好用的jquery弹出层插件——wbox
    Jenkins安装插件下载失败
    如何在 Amazon RDS 中部署 MySQL 数据库实例
    VMware vSphere 6 Enterprise Plus 永久激活许可证亲测可用
    使用 convert database 命令进行 RMAN 跨平台迁移(12C>19C)
    hbase用户授权
    hbase move region
    hbase表集群间数据同步 hbase replication
  • 原文地址:https://www.cnblogs.com/bluestorm/p/2660277.html
Copyright © 2020-2023  润新知