动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动态语⾔、动态类型语⾔、静态类型语⾔、强类型语⾔、
弱类型语⾔介绍
关于如题这⼏个概念,⼤部分⼈应该⽐较熟悉,但是我昏了好久,所以写下来加深印象。
1. 动态语⾔
⼜叫动态编程语⾔,是指程序在运⾏时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。
⽐如众所周知的ECMAScript(JavaScript)便是⼀个动态语⾔。
除此之外如Ruby、Python等也都属于动态语⾔,⽽C、C++等语⾔则不属于动态语⾔。
⽽其实我们平时说的“动态语⾔”应该指的是“动态类型语⾔”。
⾄少我之前⼀直是这么认为的。
2. 动态类型语⾔
在运⾏时,确定类型的语⾔。
即编译时与类型⽆关。
⼀般在变量使⽤之前不需要声明变量类型,⽽变量的类型通常是由被赋的值的类型决定。
如php、Python和Ruby。
3. 静态烈性语⾔
与动态类型语⾔正好相反,在编译时,便需要确定类型的语⾔。
即写程序时需要明确声明变量类型。
如C/C++、Java、C#等。
对于动态语⾔与静态语⾔的区分,套⽤⼀句流⾏的话就是:Static typing when possible, dynamic typing when needed。
4. 强类型语⾔
强制数据类型定义的语⾔。
也就是说,⼀旦⼀个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
强类型定义语⾔是类型安全的语⾔。
5. 弱类型定义语⾔
数据类型可以被忽略的语⾔。
它与强类型定义语⾔相反, ⼀个变量可以赋不同数据类型的值。
强类型定义语⾔在速度上可能略逊⾊于弱类型定义语⾔,但是强类型定义语⾔带来的严谨性能够有效的避免许多错误。
另外,由上边看出“这门语⾔是不是动态类型语⾔”与“这门语⾔是否类型安全”之间是完全没有联系的!。