标识符的作用

标识符的作用

ID:65488365

大小:101.50 KB

页数:13页

时间:2022-01-09

标识符的作用_第1页
标识符的作用_第2页
标识符的作用_第3页
标识符的作用_第4页
标识符的作用_第5页
标识符的作用_第6页
标识符的作用_第7页
标识符的作用_第8页
标识符的作用_第9页
标识符的作用_第10页
资源描述:

《标识符的作用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、符号表标识符的作用:声明部分:定义了各种对象及对应的属性和使用规则。程序体:对所定义的对象进行各种操作。$ididnameIdnameAttributeIR必要性Token:新表-符号表(种类、类型等信息):有关符号表的操作:添加、作用域删除、查询处理符号表的模块:定义符号表数据结构定义符号表上的操作符号表符号表的作用:为语义检查和代码生成提供标识符的语义信息。标识符的处理思想:遇到定义性标识符时,在符号表中填写被定义标识符的符号项;当遇到使用性标识符时,用该标识符查符号表求得其属性。标识符的特点标识符的作用域:标识符有效的

2、最大程序段嵌套作用域规则:当存在标识符的嵌套声明时,最近定义的属性为标识符的当前属性局部化单位:允许有声明的程序段P:Varx,y,zVarx,m,nx:=1;m:=x+1;y:=x+1;x:=0;Q:符号表的种类:全局符号表、局部符号表符号表的操作特点:在声明部分,定义标识符,要加入符号表在表达式或语句中,使用标识符,应查表查其属性。每个标识符在其作用域结束后,要删掉该属性表项体现嵌套作用规则和局部化符号表处理技术基本表组织结构:线性表结构:顺序查表法二叉树结构:平分查表法Hash表结构:散列查表法符号表的局部化处理思

3、想:确定在某个程序点处有效的所有标识符属性表项。即每个局部化单位能确定其符号表。方法:二叉式局部符号表散列式全局符号表嵌套式局部符号表二叉式局部符号表组织结构:每个局部化单位构造一个符号表,每个符号表采用二叉树结构。具体实现:用栈(Scope)来保存活跃的局部化单位的符号表地址进入局部化区:创建一个新的空符号表,其地址压入scope栈遇定义性标识符:其属性加入当前栈顶符号表遇使用性标识符:从栈顶符号表依次往下查找退出局部化区:删掉栈顶符号表二叉式局部符号表例子[1]BEGINA:int;[2]BEGINA:real;[3]BEG

4、INA:bool;A:=falseEND;A:=0.55;END;A:=100END散列式全局符号表组织结构:整个程序用一个符号表,采用外拉链散列表具体实现:符号表的局部化:嵌套作用域规则:设置计数器标记局部化单位:n:=0进入局部化单位:n:=n+1;定义性标识符:hash(Key)=pos;放入最前面位置使用性标识符:hash(Key)=pos;第一个遇到的退出局部化单位:删除局部化单位编号为n的标识符;n:=n-1;散列式全局符号表例[1]BEGINA:int;[2]BEGINA:real;[3]BEGINA:bool;A

5、:=falseEND;A:=0.55;END;A:=100END嵌套式局部符号表组织结构:整个程序一个表,采用线性组织方式,用栈记录每个局部化单位符号表的头地址。具体实现:进入局部化单位:登记符号表头地址;level:=level+1;Scope[level]:=top;定义性标识符:登记标识符属性到符号表中;使用性标识符:从本层依次往下查;退出局部化单位:关闭本层符号表;top:=top+1;SymbTable[top]:=(0,Scope[level]-1);level:=level-1;嵌套式局部符号表例ProcP()VA

6、Ri,j,k:int;ProcQ()VARx,y:real;BEGIN……………ENDProcS()VARc,e:char;BEGIN……………ENDBEGIN…………………END

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。