跳转至

符号表的作用

  • 存放有关标识符的信息
  • 用于静态语义检查产生中间代码
  • 对符号进行地址分配
  • 多遍扫描时,符号表可能有所不同
  • 可能检查的内容:
  • 是否先声明后使用?是否重复声明?
  • 类型检查
  • 作用域检查

符号表的常见属性

符号表的常见属性

符号表的实现

符号表的实现

符号表的作用域与可见性

  • 符号表体现作用域信息:
  • 所有作用域共用一个全局符号表
  • 或每个作用域有各自的符号表
  • 嵌套的作用域
  • 某个点所在的作用域为:当前作用域
  • 当前作用域与包含它的程序单元构成的作用域:开作用域
  • 不属于开作用域的:闭作用域
  • 可见性规则
  • 在程序的任何一点,只有在该点开作用域中声明的名字才是可访问的
  • 若在多个开域中被声明,则选取最近的声明当作解释
  • 作用域与单符号表组织(课件示例见 slide4.pdf 第 19 页附近):

单符号表与作用域

多符号表与作用域 1

多符号表与作用域 2


相关笔记