我有这个问题。 如果我有一个动态语言划分为unities(子程序)。这种语言是否有可能具有静态范围? 在是的情况下,如何在符号表中表达?这在每一行中都有一个字段,表示像A.R.这样的静态链。用Algol风格的语言?
答案 0 :(得分:1)
大多数语言都有静态范围。这包括许多动态语言(Python,Ruby,Javascript甚至Perl,如果你使用my
来声明你的变量)。
如果是,是如何在符号表中表达的?
与任何其他语言相同。如果遇到变量声明(在某些语言中"声明"表示"第一次将变量分配给"),该变量将添加到表中。到达范围的末尾后,它将从表中删除。在某些语言中,规则可能稍微复杂一些(例如在Javascript中,变量在声明之前就会在范围内),但基本上就是这样。