第7章 符号表_第1页
第7章 符号表_第2页
第7章 符号表_第3页
第7章 符号表_第4页
第7章 符号表_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章第七章 符号表符号表7.1 7.1 概述概述1.1.符号表类型符号表类型2.2.符号表的操作符号表的操作3.3.符号表的查找符号表的查找4.4.符号表的作用符号表的作用7.2 7.2 符号表的组织符号表的组织7.3 7.3 名字的作用范围名字的作用范围2这里讲的是编译程序内部使用的符号表,一般包括:变量表:名字、类型、所属过程、相对地址、常数表:名字、值过程名表:过程名、参数个数、参数类型、返回值类型3对给定名字,查找其是否已在符号表中;往表中填入一个新的名字;对给定的名字,访问它的某些信息;对给定的名字,填写或更新信息;删除无用项。4编译工作的大部分时间花费在查、填符号表,对编译的效率

2、有直接影响。常用查找方法:折半查找二叉树杂凑技术5是编译程序保存(记录)源程序中各种名字的属性和特征信息的各种表格(数据结构);一般在处理说明性语句时填符号表,在使用变量等时查符号表。符号表中的信息在编译各阶段都要使用。在语义分析中,用符号表中的内容进行语义检查(如:名字的使用与说明是否一致);在目标代码生成阶段对符号名进行地址分配时,符号表是地址分配的依据。6符号表中每个表项一般包含两项信息:名字(标识符)信息(简单变量、数组、过程等)名字名字信息信息类型类型地址地址A ARealReala+4a+4 符号表最简单的组织方式是各项所占的符号表最简单的组织方式是各项所占的存储单元长度都是固定的

3、。这样易于组织、存储单元长度都是固定的。这样易于组织、填写和查找。填写和查找。7定长:如规定名字的长度16;设计容易,数据结构简单,但浪费空间;不定长:建立一个间接数组,每个名字在符号表中占两个字,第一个字指出名字在数组中的起始位置;第二个字指出名字的长度。8NAMEINFORMATIONSAMPLESAMPLELOOPLOOP9NAMEINFORMATION, ,6 6, ,4 4S S A A M M P P L L E E L L O O O O P PNAMEINFORMATION6 S S A A M M P P L L E E 4 4 L L O O O O P将长度放将长度放符号

4、表中符号表中将长度放将长度放数组中数组中10介绍嵌套的分程序结构的程序语言中名字的作用范围。这种结构的程序设计语言不但有符号表,而且还应有一张分程序表。分程序表应包含三项内容:外层编号;本层填入符号表的变量个数;符号表指针。111Procedure A; var a,b,c,d :integer; 2 procedure B; var e,f :integer; begin end 3 procedure C; var g,h :real; 4 procedure D; var a : real; begin end; / D begin end; / C begin end; / A若若f:=;f:=;则错,则错,f f未在未在D D段声明段声明这种结构是先查内层表,这种结构是先查内层表,查不到时再查外层表查不到时再查外层表12过程号过程号 外层编号外层编号 变量个数变量个数指针指针104212312431abcdefgha每碰到一个每碰到一个pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论