什么是表示范围信息?
表示作用域信息是一个概念,其中每个变量名的作用域都保存在符号表中,以便我们可以在不同的块和不同的位置使用相同的名称。
表示范围信息涉及
特定块中变量的生命周期。
代表符号表中的名称以及它出现的块的指示符。
假设我们在块 A 中有一个变量名“a”,在块 B 中有相同的变量。假设我们将“a”存储在没有块信息的符号表中。在那个se中,它只会保留它遇到的'a'的第一个实例,因此为了克服这个问题,名称以对(变量名称,块名称)的形式存储,以便可以在不同的块中使用相同的名称和程序。
Scope Representation 反映了源程序中变量名的可见性。
在 FORTRAN 中表示范围信息
FORTRAN 程序由主程序、子程序和函数组成。
每个名称都有一个由一个例程组成的范围,即变量范围仅限于例程的末尾。
它可以在到达例程结束时为每个例程生成目标代码,因此需要消除存储在符号表中的属于该特定例程的变量的名称。
因此,我们只需要存储例程外部的名称以及符号表中公共块的名称。
考虑一个散列方案,如下所示 -
在每个链中,当前例程外部的名称将首先出现。
它可以将新的内部名称附加到末尾,并将新的外部名称附加到开头。
从上图中可以清楚地看出,哈希值选择了名称 2,因此 2 是当前例程的一部分,而名称 1 在其外部,这就是为什么名称 1 写在开头,名称 2 附加在末尾。
当我们到达例程的末尾并为其生成目标代码时,我们将指针重置为可重用表中的可用存储,但不是永久存储。
所有从永久表指向可重用表的指针都设置为空,哈希表将直接指向可重用表。
我们还可以通过以下方式重用用于名称的存储空间。我们将使用名称链接存储区域中的位置来表示名称,并且这样的位置可以描述不同的例程,因为该区域被重用。
以上是 什么是表示范围信息? 的全部内容, 来源链接: utcz.com/z/363456.html