* 编译原理
** 符号表
==符号表的每一项(入口)包含两大栏:
[]名字栏: 也称主栏,关键字栏.
[]信息栏: 记录相应的不同属性,分为若干子栏.
==对符号表的操作:
[]填入名称.
[]查找名字.
[]访问信息.
[]填写修改信息.
[]删除.
==对符号表进行操作的时机:
[]定义性出现.
[]使用性出现.
==按名字的不同种属建立多张符号表,如常数表,变量名表,过程名表,...
==符号的组织方式:
1.安排各项各栏的存储单元为固定长度.
2.用间接方式安排各栏存储单元.
==符号表的存放次序:
1.把每一项置于连续K存储单元中,构成一张K*N的表.
2.把整个符号表分成m个子表,如T1,T2,T3..Tm,每个子表包含有N项.
==符号表的信息栏中登记了每个名字的有关性质:
[]类型:整,实或布尔等.
[]种属:简单变量,数组,过程等.
[]大小:长度,即所需的存储单元字数.
[]相对数:指分配给该名字的存储单元的相对地址.
==PL语言编译程序的符号表.
1.表格的定义:
[] 名字表 : 登记程序中出现的各种名字及属性.
[] 程序体表:
[] 层次显示表: 描述正在处理的各种嵌套层,对程序体表进行管理.
[] 数组信息表
[] 中间代码表: 用于存放编译程序所产生的每条中间代码.
** 符号表
==符号表的每一项(入口)包含两大栏:
[]名字栏: 也称主栏,关键字栏.
[]信息栏: 记录相应的不同属性,分为若干子栏.
==对符号表的操作:
[]填入名称.
[]查找名字.
[]访问信息.
[]填写修改信息.
[]删除.
==对符号表进行操作的时机:
[]定义性出现.
[]使用性出现.
==按名字的不同种属建立多张符号表,如常数表,变量名表,过程名表,...
==符号的组织方式:
1.安排各项各栏的存储单元为固定长度.
2.用间接方式安排各栏存储单元.
==符号表的存放次序:
1.把每一项置于连续K存储单元中,构成一张K*N的表.
2.把整个符号表分成m个子表,如T1,T2,T3..Tm,每个子表包含有N项.
==符号表的信息栏中登记了每个名字的有关性质:
[]类型:整,实或布尔等.
[]种属:简单变量,数组,过程等.
[]大小:长度,即所需的存储单元字数.
[]相对数:指分配给该名字的存储单元的相对地址.
==PL语言编译程序的符号表.
1.表格的定义:
[] 名字表 : 登记程序中出现的各种名字及属性.
[] 程序体表:
[] 层次显示表: 描述正在处理的各种嵌套层,对程序体表进行管理.
[] 数组信息表
[] 中间代码表: 用于存放编译程序所产生的每条中间代码.