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

类型的语义表示.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第9章 符号表 9.1 类型的语义表示 标识符的处理主要包括语义代码化、作用域处理、符号表构造、单元分配等工作。 单词是最小的语义单位。 一、符号表的作用 表 格 管 理 错 误 处 理 词法分析 中间代码生成 语法分析 中间代码优化 目标代码生成 源程序 目标程序 ?在整个编译阶段都离不开符号表。 二、符号表的内容 Pascal0有以下几种类型: 整 型:integer 实 型:real 布尔型:boolean 数组型:ARRAY[N1…N2]OF T 记录型:RECORD id1:T1;…;idn;Tn END 类型表TYPEL结构形如: TYPEL[tp]: TCLASS TPOINT 种类部分 指针 TCLASS: i r b a d 整型 实型 布尔型 数组型 记录型 TCLASS部分结构如下: 数组信息表 AINFL的结构形如: AINFL[ap]: LOW UP CTP CLEN 下界 上界 指针 类型的长度 记录信息表 RINFL的表项结构形如: RINFL[rp]: IDE OFF FTP 域名部分 区距部分 FTP是域类型部分 一个记录类型要占几个RINFL表项,不同记录类型所占表项个数不一,而在表项中没有链接部分,因此在不同记录的RINFL表之间可放置一条空项,以表示记录类型的RINFL表中的结束。 综上所述,我们有: TYPEL表 integer: i nil real: r nil boolean: b nil a array: AINFL d record: RINFL 设一记录类型的RINFL表为 : rp: id1 Off1 tp1 id2 Off2 tp2 ? ? ? idn Offn tpn 假定integer,real,boolean为标准类型,其地址部分分别为itp,rtp,btp。 Leng(itp)=Leng(rtp)=Leng(btp)=1 例1:设有数组类型ARRAY[1…10] OF ARRAY [1…5] OF integer 则其内部表示如下图所示。 AINFL TYPEL tp: a TCLASS TPOINT LOW UP CTP CLEN 1 10 5 a 1 5 itp 1 例2:记录类型RECORD u:integer; a:ARRAY[1…10] OF boolean; r:RECORD x,y:real END END 则表示如下图所示。 d rtp: TCLASS TPOINT u 0 itp a 1 atp r 11 rtp’ atp: a TCLASS TPOINT AINFL表 1 10 btp 1 d rtp: TCLASS TPOINT x 0 rtp y 1 rtp 9.2 标识符的语义表示 程序中标识符的出现分为定义性的和使用性的。 标识符的定义部分确定标识符的语义,它主要包括种类、类型、地址等等内容。 标识符语义的内部表示称为机内符(机器内部符号)或语义字。 在我们的PASCAL0语言中,标识符的种类有: 常量种类 类型种类 变量种类 实在变量 赋值形参变量 引用形参变量 赋值形参变量 过函种类 实在变量 标识符语义字的一种结构: ITYPE ICLASS IADDR 类型部分 种类部分 地址部分 ICLASS的具体结构如下: ICLASS: c t v p d f r 常量 类型 变量 过函 域名种类 形参 引用型形参 从实际实现的角度来说,ICLASS的上述结构是很不经济的,因为如果用编码方法,三个二进位就够了。但上述结构直观、便于描述,因此还是采用这种结构。 IADDR部分的具体意义依赖于ICLASS内容。 1. 若ICLASS.c=1,则IADDR是CONSL表地址。 2.若ICLASS.t=1,则IADDR是类型长度 3.若ICLASS.v=1.则IADDR是形如: 的抽象地址,其中LEVEL 是层数,OFF是区距部分。 4.若ICLASS.d

文档评论(0)

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

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

1亿VIP精品文档

相关文档