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

编译原理compiler7_符号表.ppt

编译原理compiler7_符号表.ppt

预览

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

15 金币

下载此文档

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

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

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

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

第七章:符号表管理技术7.1概述(2)建表和查表的必要性(符号表在编译过程中的作用)1.语法分析和语义分析说明语句赋值语句的语法规则上下文有关分析;是否声明;类型一致性检查2.生成目标代码LOADa的地址ADDb的地址STOx的地址(3)有关符号表的操作:填表和查表7.2符号表的组织与内容“特性”域:可包括多个子域,分别表示标识符的有关信息。如:名字(标识符)的种类:变量、函数、过程、数组、标号、参数等类型:如整型、浮点型、字符型、指针等性质:变量形参、值形参等名字:常量名地址:变量所分配单元的首址或地址位移大小:所占的字节数作用域的嵌套层次(2)组织方式例:beginarrayB[1..100]…end7.3非分程序结构语言的符号表组织(2)标识符的作用域及基本处理办法<2>在声明部分读到标识符,造局部符号表查本程序单元局部符号表,有无同名<3>在语句部分读到标识符查表查本程序单元局部符号表有无同名(3)符号表的组织方式2.有序符号表符号表按变量名进行字典式排序线性查表:n+1/2折半查表:log2n-13.散列符号表(Hash)表:符号表地址=Hash(标识符)解决:冲突7.4分程序结构语言的符号表组织A为内分程序局部变量A为内分程序全局变量begin……procedureP(i,j);begin…Lend…gotoL;P(3,5);…End;③循环语句中定义的标识符,其作用域为该循环语句建查符号表均要遵循标识符作用域规定进行建表不能重复不能遗漏查表按标识符作用域处理方法c.标准标识符的处理主要是语言定义的一些标准过程和函数的名字,它们是标识符的子集。如sincosabs…(注意它们不是语言的保留字)特点:1)用户不必声明就可全程使用2)设计编译程序时标准名字及其数目已知处理方法:1)单独建表,使用不便,出错2)预先将标准命填入名字表中,因为它们是全程量,所以应填入最外层