代码之家  ›  专栏  ›  技术社区  ›  lucasasecas

有可能静态地使用动态语言吗?

  •  -1
  • lucasasecas  · 技术社区  · 10 年前

    我有这个问题。 如果我有一个划分为单元(子程序)的动态语言。这种语言是否可能具有静态作用域? 如果是,在符号表中如何表示?这在每行中都有一个字段表示静态链,就像Algol风格语言中的a.R?

    1 回复  |  直到 10 年前
        1
  •  1
  •   sepp2k    10 年前

    大多数语言都有静态作用域。这包括许多动态语言(Python、Ruby、Javascript,甚至Perl,如果您使用 my 声明变量)。

    如果是,在符号表中如何表示?

    在其他语言中也是如此。如果遇到变量声明(在某些语言中,“声明”表示“第一次分配变量”),则将变量添加到表中。一旦到达范围的末尾,它就会从表中删除。在某些语言中,规则可能会有点复杂(例如,在Javascript中,变量甚至在声明之前就在范围内),但基本上就是这样。