如果范围是变量可见的“地方”,而引用环境是程序中某个点中可见的变量集,那么它们之间有区别吗?
例如这里说“”“范围的反面是引用环境......”“”但我不太明白那个断言!
如果范围是变量可见的“地方”,而引用环境是程序中某个点中可见的变量集,那么它们之间有区别吗?
例如这里说“”“范围的反面是引用环境......”“”但我不太明白那个断言!
我认为“converse”一词用词不当,更不用说对比两个本质上不同的类别,即(组)变量和代码中可以访问所述变量的位置。“补充”可能是一个更好的选择。
由于给出的原因,是的,有区别。
您引用的参考文献可能打算颂扬的是变量/参数掩蔽。考虑一些在过程本地声明的变量“a”。假设过程体的一部分是一个局部块,在该块中声明了另一个也称为“a”的变量。
第一个变量“a”将是过程(本地)引用环境的一部分。它的范围扩展到整个过程主体,除了具有自己的变量“a”声明的块。在伪代码中(真实世界的代码可以是例如 c、perl、plsql):
proc xy
local a;
...
block
local a;
...
endblock
...
endproc
此示例仅用于说明目的,因为省略了细节:它假定静态范围,从其他可能也定义一些“a”的本地块中抽象出来,以及访问“外部 a”的特殊机制(即 perl 允许运行时访问整个符号表)。