动态语言 静态语言

动态语言,是指在程序运行期间检查数据的类型,在程序编写时无需指定数据类型的编程语言。如,Python和Ruby等都是动态语言,还有脚本语言vbscript,javascript等也是动态语言。

静态语言,是指在程序编写时就已指定了数据的类型,编译时做类型检查。如C、C++、Java等都是静态语言。


可以通过比较语言的语法格式,基本就可以确认是动静态语言了。


动态语言在运行期间可以改变数据类型的结构、对象的函数、变量可以被删除和修改。如下面的javascript的例子:

function Person(name){
	this.name=name;
}
Person.prototype.getName=function(){
 	return this.name;
}
var person=new Person("hello");
alert(person.getName());
person.getName=function(){return "xxx"};
alert(person.getName());

静态语言是不能做到这些的。

优缺点

静态语言的主要优点是类型安全,结构规范,方便调试。缺点是需要写更多的类型相关代码,不便于阅读。

动态语言的主要优点是在于方便阅读,不需要写相关的类型代码。缺点是不便于调试,书写不规范时,会造成读不懂,不利于理解。


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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值