编译原理--符号表实验报告

编译原理--符号表实验报告

ID:33591375

大小:203.80 KB

页数:8页

时间:2019-02-27

编译原理--符号表实验报告_第1页
编译原理--符号表实验报告_第2页
编译原理--符号表实验报告_第3页
编译原理--符号表实验报告_第4页
编译原理--符号表实验报告_第5页
资源描述:

《编译原理--符号表实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、山东大学威海分校信息工程学院软件工程系网络安全实验报告编号:信息工程学院软姓名谭鑫院系学号20078001232件工程专业任课教师贺红指导教师贺红实验地点电子楼101实验时间2010-5-7实验名称自学第八章――符号表同组人预习报告(对实验主要内容的认识)得分1、符号表的组织与作用2、整理与查找3、名字的作用范围4、符号表的内容实验内容(问题,思路,程序,结果)得分1、什么是符号表?符号表有哪些重要作用?答:编译过程中编译程序需要不断洪和反复查证出现在源程序中各种名字的属性和特征等有关信息。这些信息通常记录在一张或几张符号表中。符号表的每一项包含两部分:一部分是名字(标识符)一部分是此名

2、字的有关信息。每个名字的有关信息一般指种属(如简单变量、数组、过程等)、类型(如整、实、布尔等)等等。作用:在编译的各个分析阶段,每当遇到一个名字都要查找符号表。如果发现一个新名字,或者发现已有名字的新信息,则要修改符号表,填入新名字和新信息。符号表中所登记的信息在编译的不同阶段都要用到。在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名字的使用和原先的说明是否一致)和产生中间代码。在目标代码生成阶段,当对符号名进行地址分配时,符号表是地址分配的依据。对于一个多遍扫描的编译程序,不同遍所用的符号表也往往各有不同。2、符号表的表项常包括哪些部分?各描述什么?答:符号表的表项常包括

3、名字栏和信息栏两部分。名字栏描述的是名字,由于查填符号表一般是通过匹配名字来襀的,因此,名字栏也称为主栏,主栏的内容称为关键字。信息栏包含许多子栏和标志位,用来记录相应名字的种种不同属性。3、符号有的组织方式有哪些?它的组织取决于哪些因素?答:符号表的组织方式有两种:①让各栏所占的存储单元的长度都是固定的。②专门开辟一个信息表区,称为数组信息表(或内情向量表),将数组的有关信息全部存入此表中。在符号表的地址栏中存入符号表与内情向量表连接的入口地址(即指针)。它的组织取决于对存储空间利用率的考虑。例如,有些语言规定标识符的长度不得超过8个字符,则可采用第一种组织方式。而有许多语言对标识符的

4、长度几乎不加限制,或者说,标识符的长度范围甚宽,则可采用第二种组织方式。4、给出自适应线性表的查、填算法(注意修改自适应链)。答:(1)从词法分析器中读出要查找的单词。(2)从自适应链所指的第一个元素开始查找,若找到,返回所需信息,并将链头指向刚才查到的那个项。若未找到,则前往(3)。(3)填入新项,让链头指向填入的新项。重复(1)~(3)步,直至所有单词均分析完毕。5、设计一个算法,它将按字典顺序输出二叉树上各结点的名字。答:(1)将第一个碰到的名字作为“根”结点,它的左右指示器均置为null。(2)将新结点与根结点的值作比较,小者放在右枝上,大者放在左枝上。如果根结点的左(右)枝已成

5、子树,则转至(3)。(3)让新结点与子树作比较,方法同(2)。重复(1)~(3)步,直至新结点插入时成为叶子结点为止转至(4)。(4)从叶子结点由右向左,由下至上输出各结点的名字。一、符号表的组织和作用1.1符号表的作用一张符号表的每一项(或称入口)白喊两大栏(或称区段、字域),即名字栏和信息栏。信息栏包含许多子栏和标志位,用来记录相应名字的种种不同属性,由于查填符号表一般是通过匹配名字来实现的,因此,名字栏也称主栏。主栏的内容称为关键字。符号表中的每一项都是关于名字的说明。因此所保存的关于名字的信息取决与名字的用途,所以各表项的格式不一定统一。对每一项可以用一个记录表示。为了使表中的每

6、个记录格式统一,可以在记录中设置指针,把某些信息放在表的外边,用指针指向存放另外信息的空间。在整个编译期间,对于符号表的操作大致可归纳为五类:•对给定名字,查询名字是否已在表中;•往表中填入一个新的名字;•对给定名字,访问它的某些信息;•对给定名字,填写或更新它的某些信息;•删除一个或一组无用的项。不同种类的表格所涉及的操作往往也是不同的。上述五个方面只是一些基本的共同操作。2.2符号表的组织形式总体组织和表项属性信息组织第一种:把属性种类完全相同的那些符号组织在一起,构造出表项是分别为等长的多个符号表第二种:把所有语言中的符号都组织在一张符号表中。组成一张包括了所有属性的庞大的符号表第

7、三种折衷方式是根据符号属性相似程度分类组织成若干张表,每张表中记录的符号都有比较多的相同属性。编译程序按名字的不同种属分别使用许多符号表,如常数表、变量名表、过程名表等等。SUBROUTINEINCWAP(M,N)10K=M+1M=M+4N=KRETURNEND经编译头三阶段后所产生的主要表格有:符号名表SNT、常数表CT、入口名表ENT、标号表LT和四元式表QT二.符号表的整理与查找三种构造法和处理法,即线性查找、二叉树和杂凑技术

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。