Programming languages 静态和动态范围界定问题
在这个论坛上读了一些关于这个话题的帖子后,我对静态和动态范围有了更好的理解。 然而,我在互联网上遇到了一个问题,并且似乎面临着解决这个问题的问题。 代码如下:Programming languages 静态和动态范围界定问题,programming-languages,global-variables,scope,pseudocode,Programming Languages,Global Variables,Scope,Pseudocode,在这个论坛上读了一些关于这个话题的帖子后,我对静态和动态范围有了更好的理解。 然而,我在互联网上遇到了一个问题,并且似乎面临着解决这个问题的问题。 代码如下: x : integer –– global procedure set x(n : integer) x := n procedure print x write integer(x) procedure first set x(1) print x procedure seco
x : integer –– global
procedure set x(n : integer)
x := n
procedure print x
write integer(x)
procedure first
set x(1)
print x
procedure second
x : integer
set x(2)
print x
set x(0)
first()
print x
second()
print x
如果我们使用静态作用域,这个程序会打印什么?如果我们使用动态作用域,这个程序会打印什么?在启动伪代码后,用一些虚构的语言预测会发生什么并不容易,但预期的结果是:
1 - procedure 'first' output
2 - procedure 'second' output
1 - 'main' output
这些不称为静态/动态。这些是global
/local
。至少在那些我知道的语言中