第九章--符号表.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第九章符号表9.1符号表的作用和地位9.2符号的主要属性及作用9.3符号表的组织9.4符号表的管理9.1符号表的作用和地位1.收集符号属性如:intA;floatB[5];2.上下文语义的合法性检查的依据3.作为目标代码生成阶段地址分配的依据 根据其被定义的存储类别或被定义的位置,确定其被分配的区域和在区域中所处的具体位置.9.2符号的主要属性及作用语言符号:关键字、操作符号、标识符号1、符号名2、符号的类型决定其存储格式及可施加的运算操作如:整形用定点表示,实型用浮点表示又如:a+b检查类型,转换类型3、符号的存储类别存储类型定义:1)用关键字指出;2)根据变量说明在程序中的位置决定4、符号的作用域及可视性变量可视性的影响因素:1)函数的形式参数2)分程序结构5、符号变量的存储分配信息(存储区及在该区的具体位置)1)静态存储区 公共静态区、局部静态区 静态变量的生存周期是程序运行的全过程。2)动态存储区如: inta; floatb;structcc{intd; floate;}c;6、符号的其它属性(1)数组内情向量表(2)记录结构型的成员信息(3)函数及过程的形参9.3符号表的组织1、符号表的总体组织1)按照属性完全相同的那些符号组织在一起。2)把所有语言中的符号都组织在一张符号表中。3)折衷的方式:根据符号属性相似程序分类组织成若干张表,第张表记录的符号都有比较多的相同属性。2、符号表项的排列1)线性法(符号个数小于20时采用较佳)按符号被扫描到的先后顺序建立2)排序组织及二分法3)散列组织关键:杂凑函数的选取问题:散列冲突解决方法:多次散列3、关键字域的组织1)等长关键字段符号表2)关键字池如:有一组标识符 an exemplar of key-words field4、其它域的组织1)等长属性值域组织如:可用1个BIT位或1个布尔量来表示“定义否”又如:表示符号的类型用3个BIT位或一个整型量data-type3个bit位 char 000 short 001 int 010 long 011 unsigned 100 float 101 double 110对于一些表示符号之间关系的属性,可用指针(链):如:函数-形参结构-成员例:func1(para1,para2,para3) func2()2)不等长属性值域的组织如:数组的内情向量表例:array1(subscrip1,subscrip2) array2(subscrip3,subscrip4,subscrip5,subscrip6)C语言中数组的相关组织:Intabc[3][4][2];5、下推链域的组织如:分程序中同名标识符生存期发生重叠例:… inti;……………….(1) … func()……………..(2) {… floati;………….(3) … {………….(4) inti[5];………(5) … {………………(6) inti;…….(7) … } …i………………..(8) } …i…..(9)}9.4符号表的管理1、初始化1)表长是渐增变化的情况2)表长是确定的情况2、符号表的登录3、符号表查找4、分程序结构层次的管理1)分表结构2)单表结构第十章

目标程序运行时存储组织10.1数据空间的三种不同使用方法和管理方法10.2栈式存储分配的实现10.3参数传递10.4过程调用、过程进入和过程返回10.5堆式存储概述数据空间运行时存储区域存储分配策略的依据:源语言的结构特点、源语言的数据类型、源语言中决定名字作用域的规则等因素10.1数据空间的三种不同使用方法和管理方法1、静态存储分配在编译时能确定目标程序运行时所需的全部数据空间的大小,编译时安排好目标程序运行时的全部数据空间,确定每个数据对象的存储位置。适合静态存储分配的语言(如:FO

文档评论(0)

iris + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档