0

如果范围是变量可见的“地方”,而引用环境是程序中某个点中可见的变量集,那么它们之间有区别吗?

例如这里说“”“范围的反面是引用环境......”“”但我不太明白那个断言!

4

1 回答 1

0

我认为“converse”一词用词不当,更不用说对比两个本质上不同的类别,即(组)变量和代码中可以访问所述变量的位置。“补充”可能是一个更好的选择。

由于给出的原因,是的,有区别。

您引用的参考文献可能打算颂扬的是变量/参数掩蔽。考虑一些在过程本地声明的变量“a”。假设过程体的一部分是一个局部块,在该块中声明了另一个也称为“a”的变量。

第一个变量“a”将是过程(本地)引用环境的一部分。它的范围扩展到整个过程主体,除了具有自己的变量“a”声明的块。在伪代码中(真实世界的代码可以是例如 c、perl、plsql):

proc xy
   local a;
   ...
   block
      local a;
      ...
   endblock
   ...
endproc

此示例仅用于说明目的,因为省略了细节:它假定静态范围,从其他可能也定义一些“a”的本地块中抽象出来,以及访问“外部 a”的特殊机制(即 perl 允许运行时访问整个符号表)。

于 2013-03-27T18:31:22.957 回答