Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 静态和动态范围界定问题_Programming Languages_Global Variables_Scope_Pseudocode - Fatal编程技术网

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
。至少在那些我知道的语言中