为什么脚本语言使用动态范围规则?

时间:2010-11-24 09:13:04

标签: scripting programming-languages scope

有人知道为什么scripitng语言使用动态范围规则吗?我在互联网上找不到任何关于此事的事情。

3 个答案:

答案 0 :(得分:12)

脚本语言通常dynamic scoping。 Scheme,Lua,Ruby和Python都是词法范围的。只有少数几种语言仍在使用动态范围,因为通过查看代码可能很难推断出代码的作用。

当你说“动态范围”时,你想描述什么?

答案 1 :(得分:2)

部分是因为他们可以。与编译语言相比,脚本语言已经具有访问变量的大量开销。添加动态范围很容易,添加诸如闭包之类的有趣功能也是如此。

答案 2 :(得分:1)

这里有一个有用的动态范围概述: 来自http://c2.com/cgi/wiki?DynamicScoping

这包括以下内容:

  

“动态范围是有用的   替代全局范围   变量。一个函数可以说“让   current_numeric_base = 16;打电话给别人   功能;“和其他功能   将以十六进制打印。然后   当他们返回时,和基地设置   函数返回,基数将返回   无论如何。“