编程语言里的静态、动态、强类型、弱类型等概念介绍
2015-05-08 11:02
1001 查看
对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。
“动”或“静”,强调的是实施类型的时间,编译里就要确定类型的是静态类型,比如C/C++/JAVA/C#,运行时才实施类型的则是动态类型,比如VB/Python。
而“强”或“弱”刚强调实施类型的强度,强类型的语言,如C++等,变量的类型不可随意转换;而弱类型的语言,变量的类型可以随需要任意转换,而且通常都是隐式的。
静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.
动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
强类型语言是一旦变量的类型被确定,就不能转化的语言。实际上所谓的貌似转化,都是通过中间变量来达到,原本的变量的类型肯定是没有变化的。
弱类型语言则反之,一个变量的类型是由其应用上下文确定的。比如语言直接支持字符串和整数可以直接用 + 号搞定。当然,在支持运算符重载的强类型语言中也能通过外部实现的方式在形式上做到这一点,不过这个是完全不一样的内涵
通常的说,java/python都算是强类型的,而VB/Perl/C都是弱类型的.
不过相比于动态/静态语言的分类,强类型/弱类型更多的是一个相对的概念。
您可能感兴趣的文章:
相关文章推荐
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编程语言的分类(编译型-解释型;动态类型-静态类型;强类型-弱类型)
- 静态编程语言、动态编程语言以及静态类型语言和动态类型语言
- 关于动态语言和静态语言、强类型定义语言和弱类型定义语言的概念区分
- 关于动态语言和静态语言、强类型定义语言和弱类型定义语言的概念区分
- 动态语言和静态语言、强类型定义语言和弱类型定义语言、解释型语言、动态语言、脚本语言的概念区分
- 关于动态语言和静态语言、强类型定义语言和弱类型定义语言的概念区分
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- Objective-C 编程语言(9)使能静态行为----缺省的动态行为、静态类型
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 动态语言,静态语言,动态类型语言,静态类型语言,动态编程语言,静态编程语言(未完)
- 动态语言和静态语言、强类型定义语言和弱类型定义语言、解释型语言、动态语言、脚本语言的概念区分
- 【转载】编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别