网站大量收购闲置独家精品文档,联系QQ:2885784924

第9章符号表试卷.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 例如线性组织和二分法组织的符号表,其表的长度(反映已登录表项个数)在编译开始时通常为“0”,而随着符号的逐步登录,表长增长。 散列组织的符号表,其表长通常是确定的, * 当编译程序获得一个标识符符号,并确定该符号在符号表中尚不存在时,就要将此符号登录到符号表中。 * 名字属性大都取决于编译程序获得某个符号时编译所处的程序扫描点的状态。 * 4. 存储分配属性: (1) 对于a:a是结构tag的成员,是t结构量的成员变量。其存储分配属性是成员变量a在结构变量t中的相对位移量。 (2) 对于t:由于结构变量t是函数func中的Auto变量,因而t的存储分配属性又是函数func动态工作区中的相对位移量。 5. 数组内情向量属性: 该变量a是一个二维整型数组,具有n×m个元素。 * 符号表的查找算法,与该符号表的组织方法密切相关。与符号表的3种组织方法对应,可用顺序查找、折半查找和杂凑查找算法实现符号表的查找。 * 广东工业大学计算机学院 LOGO * 关键字池的索引结构 如果希望既保证关键字段的等长,又要减少甚至消除冗余,可采用关键字池的索引结构。 假设有一组标识符 an  exempler  of  key-wrds  field 关键字段的组织结构如右图: 广东工业大学计算机学院 LOGO * 4. 其它域的组织 符号表属性域的组织,根据属性性质大致分成两类: 一类是符号的属性值的类型相同,并且是等长的,则该属性域的类型结构就可用其长度及类型来定义。 例如boolean,int,float等基本数据类型 另一类符号的属性值的类型相同,但不等长,则该属性域的定义不能用简单的数据类型来定义。 例如:数组内情向量。 广东工业大学计算机学院 LOGO * (1) 等长属性值域的组织 下面我们讨论一些典型的等长属性值域的组织。 (1) 表示某个符号的布尔性质的属性域,可用1个bit位来表示;也可用1个布尔量来表示。如 defined 1 /* defined true */ 表示已定义 defined 0 /* defined false */ 表示尚未定义 符号类型 3个bit位表示 整数值表示 char 000 0 short 001 1 int 010 2 long 011 3 unsigned 100 4 float 101 5 double 111 6 (2) 表示符号的数据类型可以用若干个bit位来表示;也可用1个整型量来表示。 以C语言为例: 广东工业大学计算机学院 LOGO * 等长属性值域的组织(续) 对于表示符号之间关系的属性,可用指针或指针链来构造。 如函数符号与它的形参符号之间的关系属性:“函数-形参”指针域。例: func1 (para1, para2, para3); func2 () 广东工业大学计算机学院 LOGO * 指针型参数域的应用 设有一个C语言的结构体变量结构: struct tag1 { … memb1;  … memb2;           struct tag2{ … memb3;    … memb4; … memb5; } memb6;      … memb7; } stv; 标识符 结构定义 结构-成员域 … tag1 m1 m2 tag2 m3 m4 m5 m6 m7 stv “空” “空” 广东工业大学计算机学院 LOGO * 2 (2) 不等长属性值域的组织 符号的某些属性值是不等长的,例如数组内情向量。 设有下列两个数组 array1(subscrip1, subscrip2) array2(subscrip3, subscrip4, subscrip5, subscrip6) “0”值用来表示下标到此为止 广东工业大学计算机学院 LOGO * (3) 下推链域的组织 在某些程序语言的结构中,分程序的分层结构允许同名标识符具有的生存期发生重叠,即存在同名标识符。 为实现这种同名标识符的语义功能,符号表中需要设立下推链域的组织。 下推链域要求:在进入内层结构并发生重名标识符定义时, (1) 把当前符号中外层的该符号下推到下推链中, (2) 在符号表被下推的表项处,建立内层的同名标识符表项。 广东工业大学计算机学院 LOGO * 下推链举例 例: int i ; …….(1) ……. func( ) …… (2) { …… float i;

您可能关注的文档

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档