- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
{技管理套表}符号表管理技
内容提要
符号表的作用
符号表的建立与访问
符号表的内容与组织
符号表上的操作
非块程序结构语言的符号表结构
块程序结构语言的符号表结构
7.1 符号表的作用
符号表是编译程序中的一个重要数据结构,用来保存各类标
识符的属性信息;
编译的各个阶段都可能用到与符号相关的各种信息,这些信
息用一些表格进行记录、存储和管理,如常量表、数组信息表
等等,这些表统称为符号表 ;
编译的分析阶段收集和更新符号表信息,综合阶段从符号表
获取信息。
符号表的作用 ∶
(1) 登记符号属性值
在源程序的各个分析阶段,编译程序根据标识符的声
明信息收集其有关的属性值并存放在符号表中。
每种语言规则定义了不同的符号属性;即使是同一个
语言,不同的编译程序也可能会定义并且收集不同的
属性信息。
现代编程语言中一般包括常数声明、变量声明、类型
声明和过程/函数声明等四类声明。对于每类声明,编
译程序要收集、存储和应用的属性完全不同。
例:C语言的变量声明
short int a;
float b = 0.0;
编译程序对每个变量要记录其类型,以便执行类型检查
和存储分配;
比如短整型变量a占2个字节,要记录它在存储器中的位
置(相对位移或绝对地址);若像b有初始值,则还需要记
录该初始值。
(2) 查找符号属性
符号表存放源程序中的各种类型的信
息,比如数值、变量类型、参数传递
的地址等,在分析和翻译源程序的过
程中会被不断地查询。
例:对声明语句:
short int a = 9;
short int b = 10;
如果源程序有代码a + b时,需要查找、
类型和值,以
(3)检查符号的合法性
A、检查类型是否一致
例:对声明语句:
short int a ;
float b = 0.0;
有代码 a = b + b,C语言的编译将检查变量a和b的
类型,把表达式b + b的结果转换成短整型,仅取
整数部分进行赋值。
强类型语言 (如Pascal和Ada)的表达式运算数的类
型必须一致
B、检查变量重复定义
例:C语言程序中出现
…
int i [3][5]; //定义整型数组i
…
float i[4][2]; //定义实型数组i,重定义冲突
…
int i [3][5]; //定义整型数组i,重定义冲突
…
编译程序首先在符号表中记录了标识符i的属性是3×5个
整型元素的数组,而后在分析第二、第三这两个定义说
明时,编译程序可通过符号表检查出标识符i的重定义冲
突错误。
不论在后二句 i的其它属性与前一句是否完全相同,只
要标识符名重定义,就将产生标识符重定义的语义错误。
(4) 作为目标代码生成阶段地址分配的依据
由标识符定义的存储类型或它在程序中的位置来确定。
首先确定变量存储的区域。例如,在Java语言中,整数
类型有byte (1个字节)、short (2个字节)、int (4个
字节)以及long (8个字节),而float类型占4个字节,
double类型占8个字节。
其次根据标识符的出现顺序,决定标识符在某个存储区
域中的具体位置,而有关区域的标志及其相对位置都作
为该标识符的语义信息存放在其符号表中。
7.2 符号表的建立与访问
创建时间:词法分析时和语义分析时
1、词法分析时创建:
当词法分析程序识别出一个标识符时,以该标识符名查找符号
表;若表中无此标识符的登记项,将此标识符填入符号表;
与标识符相关的其它信息,可视工作方便分别语义分析及中间
代码生成等阶段陆续填入。
语义分析程序进行语义正确性分析,遇到声明语句填入有关
标识符的属性。
您可能关注的文档
- {财务管理资本管理}让人力资源成为人力资本.pdf
- {财务管理资本管理}人力资本的保值增值与劳动者权益的确立.pdf
- {财务管理资本管理}战后资本主义世界经济体系的形成及世界经济全球化趋势试题.pdf
- {财务管理资本管理}资本主义世界体系的初步形成与社会主义运动的发展.pdf
- {财务资产管理}当代艺术品资产权益份额发售与转让暂行细则.pdf
- {财务资金管理}资金成本杠杆原理资金结构.pdf
- {采购管理套表}采购所需各种表格.pdf
- {采购管理套表}图书馆二年集中采购图书类目及征求意见表.pdf
- {采购管理套表}幼儿园室内外玩具设备询价采购开标览表.pdf
- {仓库管理套表}新中大报表仓库应用手册.pdf
最近下载
- 第一单元-观察物体(单元测试)-2025-2026学年三年级上册数学人教版.docx VIP
- 处理量6万吨日城市生活污水处理厂初步设计.docx
- 后张法预应力钢绞线理论伸长量分段汇总计算实例和应用.doc VIP
- 老年人防骗知识课件下载.pptx VIP
- 3,5-二氯-2,6-二甲基-4-羟基吡啶的生产工艺.pdf VIP
- 个人征信基础数据库系统数据接口规范第三部分数据校验规则V1.0.doc VIP
- 个人征信基础数据库系统数据接口规范第二部分:数据发布格式.doc VIP
- Unit 2 Bridging Cultures 单元整体教学设计高中英语人教版 选择性必修第二册单元整体教学设计.pdf
- 40-50之间离婚协议书.doc VIP
- 清华大学八字班数学分析1期中 于品(1).pdf VIP
文档评论(0)