目录
1.什么是符号表?符号表有哪些重要作用?
答:符号表是用来记录编译过程中的各种信息的表格
作用表现为:
(1)登记编译过程输入和输出信息
(2)在语义分析过程中用于语义检查和中间代码生成
(3)作为目标代码生成阶段地址分配的依据。
2.符号表的表项常包括哪些部分?各描述什么?
答:符号表的表项包含两大栏,即名字栏和信息栏。名字栏也叫主栏、存放名字的标识符称为关键字:
信息栏包含许多子栏和标志位、用来记录相应名字的各种不同属性。
3.符号表有的组织方式有哪些?它的组织取决于哪些因素?
答:分为直接组织方式和间接组织方式两大类。
直接组织方式中各项接固定长度存放
间接组织方式中,符号表的主栏存放标识符的一个指示器和一个整 数、标识特的字符串则存放在一个字符串数组中。
主要取决于以下因素:
(1)表项中的各栏所占的存储单元和长度是否固定。
(2)语言中标识符的长度限制;
(3)哪些项有哪些共同值;
(4)对符
号表操作和使用方式。
有哪些存储分配策略?并叙述何时用何种存储分配策略?
答:分配策略有:静态分配策略,栈式动态分配策略,堆式动态分配策略
静态、分配策略在编译时对所有的数据对象分配固定的存储单元且在运行时始终保持不变。
栈式动态分配策略在运行时把存储器作为一个栈进行管运行时每当调用一个过程,它所需要的存储空间就动态的分配于栈顶,一但退出,它所占用空间就予以解放。
堆式动态分配策略在运行时把存储器组织成堆结构,以便用户关于存储空间的申请与归还,凡申请者从堆中分给一块,凡释放者退回给堆。