作用
用于静态语义检查和产生中间代码。
属性
- 符号名
- 类别
- 类型
- 作用域
操作
- 创建符号表:编译开始或进入新的作用域
- 插入表项:遇到新的标识符声明
- 查询表项:引用标识符
- 修改表项:获得新的语义信息
- 删除表项:不再需要一个标识符
- 删除符号表:退出一个作用域
作用域与可见性
- 所有作用域共用一个全局符号表
- 每个作用域有自己独立的符号表
可见性规则
- 在程序中任何一点,只有在该点的开作用域中声明的变量是可见的
- 如果一个变量在多个开作用域中被声明,则最近的一个声明作为引用的解释
- 当前声明的变量处于当前的作用域