作用

用于静态语义检查和产生中间代码。

属性

  • 符号名
  • 类别
  • 类型
  • 作用域

操作

  • 创建符号表:编译开始或进入新的作用域
  • 插入表项:遇到新的标识符声明
  • 查询表项:引用标识符
  • 修改表项:获得新的语义信息
  • 删除表项:不再需要一个标识符
  • 删除符号表:退出一个作用域

作用域与可见性

  • 所有作用域共用一个全局符号表
  • 每个作用域有自己独立的符号表

可见性规则

  • 在程序中任何一点,只有在该点的开作用域中声明的变量是可见的
  • 如果一个变量在多个开作用域中被声明,则最近的一个声明作为引用的解释
  • 当前声明的变量处于当前的作用域