符号表的原理及典型.ppt

上传人:小飞机 文档编号:6151933 上传时间:2023-09-29 格式:PPT 页数:18 大小:222.50KB
返回 下载 相关 举报
符号表的原理及典型.ppt_第1页
第1页 / 共18页
符号表的原理及典型.ppt_第2页
第2页 / 共18页
符号表的原理及典型.ppt_第3页
第3页 / 共18页
符号表的原理及典型.ppt_第4页
第4页 / 共18页
符号表的原理及典型.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《符号表的原理及典型.ppt》由会员分享,可在线阅读,更多相关《符号表的原理及典型.ppt(18页珍藏版)》请在三一办公上搜索。

1、编 译 原 理,第九章 符号表,在编译程序工作的过程中,需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。如常数表、变量名表、数组名表、过程名表、标号表等等,统称为符号表。对于符号表组织、构造和管理方法的好坏会直接影响编译系统的运行效率。,第九章 符号表,一、符号表的作用和功能,收集符号属性上下文语义的合法性检查的依据作为目标代码生成阶段地址分配的依据,词法分析:a是一个单词;语法分析:a出现在一条变量声明语句和一条赋值语句中;语义分析:a是一个整形变量,并分配地址。,二、符号表的内容,标识符的名字与标识符有关的信息 类型信息(包括种类和属

2、性)地址码 层次信息 行号信息,二、符号表的内容,例:Pascal语言的名字信息表nametab,名字标识符,名字种类,可以是常量(constant)、变量(variable)、类型(type)、过程(procedure),名字所在的程序体的静态层次。规定主程序的层次为1,主程序中定义的层次为2,依次类推,名字的类型,类型有整型(ints)、字符型(chars)、布尔型(bool)、数组(arrays),对于无类型的名字填入notype,一个布尔量,用于标明名字是否为变量形参名,当名字是否为变量形参名时填入false,其他情况填入true或不填,当名字为数组类型或数组变量名时,ref指向该数组

3、在数组信息表中的位置;当名字为过程名时,ref指向该过程在程序体表(btab)中的位置;其他情况ref为0,adr,当名字为变量名时(包括形参,存入该变量(或形参)在相应活动记录中分类的存贮单元的相对地址;对于过程名,填入他们相应代码的入口地址val,当名字为变量名时,填入他们的相应值size,当名字为类型名时,填入该类型数据所需存贮单元的数目,指向同一程序体中定义的上一个名字在nametab中的位置,每个程序体在nametab中登记的第一个名字的link为0,二、符号表的内容,例:Pascal语言的名字信息表nametab,type a=array1.10,1.10 of integer;,

4、nametab,例:Pascal语言的数组信息表atab,数组的下标类型,数组元素类型,当元素为数组时,它指向该元素数组信息在atab表中的位置,其他情况为0,数组下限,数组上限,数组元素的体积,数组本身的体积,二、符号表的内容,type a=array1.10,1.10 of integer;,nametab,atab,三、符号表的组织,按照属性种类完全相同的那些符号组织 在一起;把所有语言中的符号都组织在一张符号 表中;根据符号属性相似程度分类组织成若干 张表,每张表中记录的符号都有比较多 的相同属性。,三、符号表的组织,假设有下列三类符号及其所需属性,第一种组织法:按属性分类,优点:管理

5、一致,空间效率高缺点:管理复杂,三、符号表的组织,假设有下列三类符号及其所需属性,第二种组织法:单一组织,优点:管理一致,集中单一缺点:管理复杂,三、符号表的组织,假设有下列三类符号及其所需属性,第三种组织法:折中方法,四、符号表的数据结构,线性表符号表项按照符号被扫描到的先 后顺序登录,a b a d c b,四、符号表的数据结构,有序表符号表项按照符号的字符代码串 的值的大小排列,a b a d c b,四、符号表的数据结构,散列表符号表项的位置由对该符号进行 某种函数操作所得到的函数值来确定,a b a d c b,五、符号表与作用域,int main()int a=0;int b=0;int b=1;int a=2;printf(“%d,%dn”,a,b);int b=3;printf(“%d,%dn”,a,b);printf(“%d,%dn”,a,b);printf(“%d,%dn”,a,b);,int main()int a=0;int b=0;int b=1;int a=2;printf(“%d,%dn”,a,b);int b=3;printf(“%d,%dn”,a,b);printf(“%d,%dn”,a,b);printf(“%d,%dn”,a,b);,B0的符号表,B1的符号表,B2的符号表,B3的符号表,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号