编译原理课件Chapter9.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:25 大小:149KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

编译原理课件Chapter9.ppt

编译原理课件Chapter9.ppt

预览

免费试读已结束,剩余 15 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第9章符号表9.1符号表的作用和地位一张符号表的每一项(或称入口才包含两大栏(或称区段、字域),即名字栏和信息栏。名字栏(NAME)信息栏(INFORMATION)第1项(入口1)第2项(入口2)…第n项(入口n)信息栏包含许多子栏和标志位,用来记录相应名字和种种不同属性,由于查填符号表一般是通过匹配名字来寮现的,因此,名字栏也称主栏。主栏的内容称为关键字(keyword)。在整个编译期间,对于符号表的操作大致可归纳为五类:•往表中填入一个新的名字;•对给定名字,查询名字是否已在表中;•对给定名字,访问它的某些信息;•对给定名字,更新它的某些信息;•删除一个或一组无用的项。不同种类的表格所涉及的操作往往也是不同的。上述五个方面只是一些基本的共同操作。9.2符号的主要属性(信息)9.3.1符号表的总体组织编译程序按名字的不同种属分别使用许多符号表,如常数表、变量名表、过程名表等等。PROCEDUREINCWAP(M,N)BEGIN10:K=M+1M=M+4N=KEND经编译头三阶段后所产生的主要表格有:符号名表SNT、常数表CT、过程名表ENT、标号表LT和四元式表QT符号名表SNTNAMEINFORMATION(1)M参数,整数,变量(2)N参数,整数,变量(3)K整数,变量常数表CT值(VALUE)(1)1(2)4过程名表ENTNAMEINFORMATION(1)INCWAP二目子程序,入口QT(1)/*记录入口名INCWAP的入口地址*/标号表LTLABLEINFORMATION(1)10QT(4)/*记录了标号10对应的四元式序列号*/四元式表QT9.3.2符号表项的排列9.3.3关键字域的组织其它域的组织9.4分程序结构的符号表组织9.4.1分表结构的组织管理9.4.2单表结构的组织管理说明部分的分析与处理(程序)说明部分的分析与处理tx:table表的下标指针,是以值参数形式使用的。dx:计算每个变量在运行栈中相对本过程基地址的偏移量,放在table表中的adr域,生成目标代码时再放在code中的a域变量定义语句的处理变量说明处理过程ENTER的实现过程ENTER的实现过程ENTER的实现PL/0编译程序