个性化阅读
专注于IT技术分析

表示范围信息

在源程序中, 每个名称都具有一个有效区域, 称为该名称的范围。

块结构语言中的规则如下:

  1. 如果在块B中声明了名称, 则该名称仅在B中有效。
  2. 如果B1块嵌套在B2内, 则对块B2有效的名称对B1也有效, 除非在B1中重新声明了名称的标识符。
  • 与名称和属性之间的关联列表相比, 这些作用域规则需要更复杂的符号表组织。
  • 表被组织成堆栈, 每个表包含名称及其相关属性的列表。
  • 每当输入新块时, 就会在堆栈中输入新表。新表包含此块声明为本地的名称。
  • 编译声明时, 将在表中搜索名称。
  • 如果在表中找不到该名称, 则会插入新名称。
  • 翻译名称的引用后, 将从堆栈中的每个表开始搜索每个表。

例如

int x;
void f(int m) {
     float x, y;
{
            int i, j;
            int u, v;
}
}
int g (int n)
{
      bool t;
}
表示范围信息

图:符合静态范围信息规则的符号表组织

赞(0)
未经允许不得转载:srcmini » 表示范围信息

评论 抢沙发

评论前必须登录!