当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

吉林大学:《编译原理》课程教学资源(PPT课件讲稿)符号表

资源类别:文库,文档格式:PPT,文档页数:13,文件大小:101.5KB,团购合买
标识符的作用: 声明部分:定义了各种对象及对应的属性和使用规则。 程序体:对所定义的对象进行各种操作。
点击下载完整版文档(PPT)

符号表 C标识符的作用: 声明部分:定义了各种对象及对应的属性和 使用规则。 程序体:对所定义的对象进行各种操作。 必要性 Token: sid idname 新表一符号表(种类、类型等信息): I dname Attr ibute IR

符号表  标识符的作用: 声明部分:定义了各种对象及对应的属性和 使用规则。 程序体:对所定义的对象进行各种操作。 $id idname Idname AttributeIR  必要性 Token: 新表-符号表(种类、类型等信息):

有关符号表的操作: 添加、作用域删除、查询 C处理符号表的模块: 定义符号表数据结构 定义符号表上的操作

 有关符号表的操作: 添加、作用域删除、查询  处理符号表的模块: 定义符号表数据结构 定义符号表上的操作

符号表 符号表的作用:为语义检查和代码生成提供 标识符的语义信息。 标识符的处理思想: 遇到定义性标识符时,在符号表中填写 被定义标识符的符号项; 当遇到使用性标识符时,用该标识符查 符号表求得其属性

符号表 符号表的作用:为语义检查和代码生成提供 标识符的语义信息。 标识符的处理思想: ▪ 遇到定义性标识符时,在符号表中填写 被定义标识符的符号项; ▪ 当遇到使用性标识符时,用该标识符查 符号表求得其属性

标识符的特点 +标识符的作用域:标识符有效的最大程序段 嵌套作用域规则:当存在标识符的嵌套声明 时,最近定义的属性为标识符的当前属性 +局部化单位:允许有声明的程序段 Var x, y, z X:=0 Q: Var x, m, n X:- m:=x+1; y:=x+1;

标识符的特点 标识符的作用域:标识符有效的最大程序段 嵌套作用域规则:当存在标识符的嵌套声明 时,最近定义的属性为标识符的当前属性 局部化单位:允许有声明的程序段 P: Var x ,y,z Var x,m,n x:=1; m:=x+1; y:=x+1; x:=0; Q:

符号表的种类:全局符号表、局部符号表 符号表的操作特点 在声明部分,定义标识符,要加入符号表 在表达式或语句中,使用标识符,应查表 查其属性。 ■每个标识符在其作用域结束后,要删掉该 属性表项 体现嵌套作用规则和局部化

符号表的种类:全局符号表、局部符号表 符号表的操作特点: ▪ 在声明部分,定义标识符,要加入符号表 ▪ 在表达式或语句中,使用标识符,应查表 查其属性。 ▪ 每个标识符在其作用域结束后,要删掉该 属性表项 ▪ 体现嵌套作用规则和局部化

符号表处理技术 基本表组织结构 线性表结构:顺序查表法 二叉树结构:平分查表法 Hash表结构:散列查表法

符号表处理技术 基本表组织结构:  线性表结构:顺序查表法  二叉树结构:平分查表法  Hash表结构:散列查表法

符号表的局部化处理 ÷思想:确定在某个程序点处有效的所有标 识符属性表项。即每个局部化单位能确定 其符号表。 方法 二叉式局部符号表 散列式全局符号表 嵌套式局部符号表

符号表的局部化处理  思想:确定在某个程序点处有效的所有标 识符属性表项。即每个局部化单位能确定 其符号表。  方法: 二叉式局部符号表 散列式全局符号表 嵌套式局部符号表

二叉式局部符号表 组织结构: 每个局部化单位构造一个符号表,每个符号表采用二 叉树结构。 具体实现: 用栈( Scope)来保存活跃的局部化单位的符号表地址 进入局部化区:创建一个新的空符号表,其 地址压入 scope栈 ■遇定义性标识符:其属性加入当前栈顶符号表 遇使用性标识符:从栈顶符号表依次往下查找 ■退出局部化区:删掉栈顶符号表

二叉式局部符号表 组织结构: 每个局部化单位构造一个符号表,每个符号表采用二 叉树结构。 具体实现: 用栈(Scope)来保存活跃的局部化单位的符号表地址 ◼ 进入局部化区:创建一个新的空符号表,其 地址压入scope栈 ◼ 遇定义性标识符:其属性加入当前栈顶符号表 ◼ 遇使用性标识符:从栈顶符号表依次往下查找 ◼ 退出局部化区:删掉栈顶符号表

二叉式局部符号表例子 [1]BEGIN A: int: [2]BEGIN A: real [3]BEGIN A: bool A false END A:=0.55 END 100 END

二叉式局部符号表例子 [1]BEGIN A :int; [2]BEGIN A :real; [3]BEGIN A: bool; A := false END ; A := 0.55 ; END ; A := 100 END

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

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

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共13页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有