- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 1 标识符中除过程标识符之外函数和变量标识符都具有数据类型属性 符号的类型属性是在语言程序中该符号的定义中得到;变量符号的类型属性决定了该变量的数据在存储空间的存储格式,还决定了在该变量上可以施加的运算操作 目前大多数语言已定义了在基本数据类型基础上扩充的复合数据类型 数组或记录结构中的每个基本元素可以是基本数据类型,也可以是其它任何一种组合式数据类型,构成嵌套式数据类型定义 指针类型所指向的变量同样可以是基本数据类型,也可以是其它任何一种组合式数据类型 多数语言对变量的存储类别定义采用两种方式: 一种是用关键字指定 一种方式是根据定义变量说明在程序中的位置来决定 区别符号存储类型的属性是编译过程语义处理、检查和存储分配的重要依据。符号的存储类别还决定了符号变量的作用域、可视性和它的生命周期等 作用域:一个符号变量在程序中起作用的范围 定义该符号的位置及存储类关键字一般决定了该符号的作用域 C语言中一个外部变量 一般来说一个变量的作用域就是该变量可以出现的场合,也就是说在某个变量作用域范围内该变量是可引用的,这就是变量可视性的作用域规则 两种情况影响到一个变量的可视性 1.函数的形式参数 多数语言中规定该函数中仅能引用作为该函数形式参数的那个变量 2.分程序(或复合语句)结构 符号表中设置一个表达符号所在层次的属性域,存放该符号的定义层次 根据符号变量的存储类别定义及它们出现的位置和次序来确定每一个变量应分配的存储区及在该区中的具体位置,用相对区头的位移量表示。 数组内情向量 包括数组类型,维数,各维的上、下界及数组首地址,这些属性信息是确定存储分配时数组所占空间的大小和数组元素位置的依据 函数及过程的形参 每个函数或过程的形参个数、形参的排列次序及每个形参的类型,都体现了调用该函数或过程时的属性,它们都应该反映在符号表的函数或过程标识符的项中。 例2. PROCEDURE INCWAP(M,N) BEGIN 10:K=M+1 M=M+4 N=K END 经编译头三阶段后所产生的主要表格有:符号名表SNT、常数表CT、入口名表ENT、标号表LT和四元式表QT 符号名表SNT ? NAME INFORMATION (1)M 参数,整数,变量 (2)N 参数,整数,变量 (3)K 整数,变量 常数表CT 值(VALUE) (1) 1 (2) 4 入口名表ENT NAME INFORMATION ?(1)INCWAP 二目子程序,入口QT(1) /*记录入口名INCWAP的入口地址*/ 标号表LT? LABLE INFORMATION ? (1)10 QT(4) /*记录了标号10对应的四元式序列号*/ 四元式表 线性法 二分法 散列法 无序线性表:在线性表尾部增加一个表项 有序线性表:将增加的表项插入到线性表相应的位置 散列表:根据散列函数寻找插入位置 当依次退出分程序时,下推链被逐次回推到符号表项中 符号表的初始化,就是在对语言程序开始编译的时刻,定义建立符号表的初始状态 9.4 符号表的管理 9.4.1 符号的初始化 初始化方法与符号表的组织方式有关 线性组织和二分法组织的符号表,其表的长度在编译开始时通常为0,而随着符号的逐步登录,表长增长 也叫线性方式组织的符号表,其初始化为表尾和表头位置相同 增长 一.变长符号表 散列组织的符号表的表长是确定的,其是否已有表项登录仅取决于该符号表中是否存在已有表项值的表项 也叫散列方式组织的符号表,其初始化要清除表中所有表项值。 二.定长符号表 下图表示定长符号表初始化的状态: 9.3.2 符号表项的排列 效率高,被多数编译程序采用 一.线性组织 这种方法规定符号表中表项按它的符号被扫描到的先后顺序登录 例如: ………………… …a…………… //第一次出现a的地方 …………b…… //第一次出现b的地方 …a…………… //第二次出现a的地方 …………d…… //第一次出现d的地方 …c…………… //第一次出现c的地方 …………b…… //第二次出现b的地方 则符号表中表项排列将如下图所示: h表示该符号表之表头,是表的开始位置 p表示该符号表的表项是符号表当前的结束位置 线性组织的符号表 二.排序组织及二分法 排序组织的符号表,就是在符号表中的表项按其
您可能关注的文档
- 第二篇 物料装卸搬运系统分析.ppt
- 第二篇 C# 中对象的创建1.ppt
- 第二篇 Project2007的操作界面.pdf
- 第二篇 创建表间关系.ppt
- 第二篇 公钥密码体制身份认证.ppt
- 第二篇 密码学概论.ppt
- 第二篇 使用Windows Sockets 9.pdf
- 第二篇 数据库的概念结构设计.doc
- 第二篇 水静力学 5-6.ppt
- 第二篇 线性尺寸精度设计.ppt
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)