静态和动态范围问题

时间:2011-03-18 21:58:46

标签: 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 second
   x : integer
   set x(2)
   print x

set x(0)
first()
print x
second()
print x

如果我们使用静态作用域,该程序将打印什么?如果我们使用动态作用域,它会打印什么?

1 个答案:

答案 0 :(得分:0)

在启动伪代码之后预测一些虚构语言会发生什么并不容易,但预期的结果将是:

1 - procedure 'first' output
2 - procedure 'second' output
1 - 'main' output

P.S。那些不称为静态/动态。这些是global / local。至少在我所知的那些语言中。