例如有一程序中出现符号的情况如下:
…………………
…a…………… //第一次出现a的地方
…………b…… //第一次出现b的地方
…a…………… //第二次出现a的地方
…………d…… //第一次出现d的地方
…c…………… //第一次出现c的地方
…………b…… //第二次出现b的地方
……
则符号表中表项排列将如图9.6。
图 9.6 线性组织的符号表 |
 |
其中h表示该符号表之表头,是表的开始位置,p表示该符号表的表项是符号表当前的结束位置。在编译程序工作过程中,扫描得到之新符号总是登录到p的位置,而p又取下一新位置,编译程序开始工作时p处于h表头位置。这种组织方式在"数据结构"的讨论中可知它的管理简单但运行效率低,特别当表项数目较大后效率就非常低。因为它没有空白项,因此存储空间效率高,但对于符号个数不确定的情况下,无法事先确定该符号表的总长度。对于事先能确定符号个数且符号个数不大(公认为小于20)时采用线性表组织是非常合适的。 |