美文网首页
编译器笔记44-运行存储分配-符号表

编译器笔记44-运行存储分配-符号表

作者: 衣忌破 | 来源:发表于2020-03-10 21:40 被阅读0次

    符号表

    符号表的组织:为每个作用域(程序块)建立一个独立的符号表

    例.png

    根据符号表进行数据访问

    根据符号表进行数据访问.png 根据符号表进行数据访问.png

    标识符的基本处理方法

    当在某一层的声明语句中识别出一个标识符(id的定义性出现) 时,以此标识符查相应于本层的符号表

    • 如果查到,则报错并发出诊断信息“id重复声明”
    • 否则,在符号表中加入新登记项,将标识符及有关信息填入

    当在可执行语句部分扫视到标识符时 (id的应用性出现)

    • 首先在该层符号表中查找该id,如果找不到,则到直接外层符号表中去查,如此等等,一旦找到,则在表中取出有关信息并作相应处理。
    • 如果查遍所有外层符号表均未找到该id,则报错并发出诊断信息"id" 未声明

    符号表的建立

    • 嵌套过程声明语句的文法
    嵌套过程声明语句的文法.png
    • 在允许嵌套过程声明的语言中,局部于每个过程的名字可以使用第6章介绍的方法分配相对地址;当看到嵌套的过程p时,应暂时挂起对外围过程q声明语句的处理

    嵌套过程声明语句的SDT

    嵌套过程声明语句的SDT.png 例1.png 例2.png 例3.png 例4.png 例5.png 例6.png

    问:为什么符号表中过程(sort readarray exchang...)指针不占空间?
    答:过程指针不进offset栈,在“方法区”。

    相关文章

      网友评论

          本文标题:编译器笔记44-运行存储分配-符号表

          本文链接:https://www.haomeiwen.com/subject/omqgdhtx.html