课程《编译原理》课件第9章符号表.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《课程《编译原理》课件第9章符号表.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 课程 编译 原理 课件 符号
- 资源描述:
-
1、9.1 9.1 类型的语义表示类型的语义表示 标识符的处理主要包括语义代码化、作用域处理、符号表构造、单元分配等工作。单词是最小的语义单位。一、符号表的作用表 格 管 理错 误 处 理词法分析中间代码生成语法分析中间代码优化目标代码生成源程序 目标程序在整个编译阶段都离不开符号表。二、符号表的内容 Pascal0有以下几种类型:整 型:integer实 型:real布尔型:boolean 数组型:ARRAYN1N2OF T 记录型:RECORD id1:T1;idn;Tn END类型表TYPEL结构形如:TYPELtp:TCLASS TPOINT 种类部分指针TCLASS:i r b a d
2、整型实型布尔型数组型记录型 TCLASS部分结构如下:数组信息表 AINFL的结构形如:AINFLap:LOW UP CTP CLEN 下界上界指针类型的长度记录信息表 RINFL的表项结构形如:RINFLrp:IDE OFF FTP 域名部分区距部分FTP是域类型部分 一个记录类型要占几个RINFL表项,不同记录类型所占表项个数不一,而在表项中没有链接部分,因此在不同记录的RINFL表之间可放置一条空项,以表示记录类型的RINFL表中的结束。综上所述,我们有:TYPEL表 integer:i nilreal:r nilboolean:b nil aarray:AINFL drecord:RI
3、NFL设一记录类型的RINFL表为:rp:id1 Off1 tp1id2 Off2 tp2 idn Offn tpn 假定integer,real,boolean为标准类型,其地址部分分别为itp,rtp,btp。Leng(itp)=Leng(rtp)=Leng(btp)=1例1:设有数组类型ARRAY110 OF ARRAY 15 OF integer 则其内部表示如下图所示。AINFLTYPELtp:aTCLASSTPOINTLOW UP CTP CLEN1 10 5a1 5 itp 1例2:记录类型RECORD u:integer;a:ARRAY110 OF boolean;r:RECO
4、RD x,y:real END END 则表示如下图所示。drtp:TCLASSTPOINTu 0 itpa 1 atpr 11 rtpatp:aTCLASSTPOINTAINFL表1 10 btp 1drtp:TCLASSTPOINTx 0 rtpy 1 rtp9.2 9.2 标识符的语义表示标识符的语义表示 程序中标识符的出现分为定义性的和使用性的。标识符的定义部分确定标识符的语义,它主要包括种类、类型、地址等等内容。标识符语义的内部表示称为机内符(机器内部符号)或语义字。在我们的PASCAL0语言中,标识符的种类有:常量种类类型种类变量种类实在变量 赋值形参变量 引用形参变量 赋值形参变
5、量 过函种类实在变量 标识符语义字的一种结构: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 是层数
6、,OFF是区距部分区距部分。4.若ICLASS.d=1,则是域类型长度5.若ICLASS.p=1,则IADDR是过函信息表PFINFL的地址,该表的表项结构如下:LEVEL OFFLEVEL OFF NOFF MOFF FN ENTRY PARAMS 层数区距DISSPLAY表的区距参数个数子程序入口地址参数处理完临时变量时的第一个可用OFF值标识符的语义字内容如下图所示常量:ITYPE ICLASS ADDRtp cCONSL 类型:tp t lengtp v l off变量:域名:tp d leng过函:tp pPFINFL 例子:设有PASCAL过程说明段:PROCEDURE p(VAR
展开阅读全文