编译原理——符号表

符号表的组织与查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
间接的方式存储是名字中存储的是指针
在这里插入图片描述
在这里插入图片描述
为了合理的使用空间,大部分情况是用的分成M个子表的方式

符号表的整理和查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

符号表的内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
tx 指向符号表下一个插入的位置
name 名字标识符 (是主栏目,查找的时候都是根据名字来索引)
kind 名字种类,可以是常量,变量,类型过程
lev 名字所在程序体的静态层次,规定主程序的层次为1,主程序中定义层次为2,以此类推
typ 名字类型,整形,字符型,布尔型,数组,对于没有类型的名字填入notype
normal 是布尔量,表示变量是否为变量形参名,当名字是变量形参填入false其他情况填入true或者不填(因为变量形参需要传地址,所以用这个栏目进行标记)
ref 当名字为数组变量或者数组变量名时,ref指向该数组在数组信息表中的位置
当名字为过程名时,ref指向该过程在程序体表中的位置;
其他情况ref为0

adr/val/size: 这三个使用同一个存储空间,不同名字选用不同参数在这里插入图片描述

link:
在这里插入图片描述

在这里插入图片描述
bx指向他下一个空闲的位置

lastpar:
是个指针
在这里插入图片描述
last:
在这里插入图片描述
psize:
在这里插入图片描述
vsize:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ax指向表格下一个填入位置
多维数组的存储是把他看做是一维数组,每一维度用一行进行存储
在这里插入图片描述
在这里插入图片描述

符号表的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


版权声明:本文为weixin_44972129原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>