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

符号表的数据结构

  • 编译器包含两种类型的符号表:全局符号表和作用域符号表。
  • 全局符号表可以由所有过程和作用域符号表访问。

名称和符号表的范围按层次结构排列, 如下所示:

int value=10;

void sum_num()
     {
       int num_1;
       int num_2;

            {
             int num_3;
             int num_4;
            }

       int num_5;

            {
             int_num 6;
             int_num 7;
            }
     }

Void sum_id
     {
       int id_1;
       int id_2;

            {
             int id_3;
             int id_4;
            }

       int num_5;
     }

上面的语法可以用符号表的分层数据结构表示:

符号表的数据结构

全局符号表包含一个全局变量和两个过程名称。 sum_num表中提到的名称不适用于sum_id及其子表。

符号表的数据结构层次结构存储在语义分析器中。如果要在符号表中搜索名称, 则可以使用以下算法进行搜索:

  • 首先, 在当前符号表中搜索符号。
  • 如果找到该名称, 则搜索完成, 否则将在父代的符号表中搜索该名称, 直到,
  • 找到名称或搜索全局符号。
赞(0)
未经允许不得转载:srcmini » 符号表的数据结构

评论 抢沙发

评论前必须登录!