网站大量收购独家精品文档,联系QQ:2885784924

CH8 静态语义分析和中间代码生成.pdf

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
S.P 词法分析程序 符 语法分析程序 错 号 表 语义分析、生成中间代码 误 处 管 理 代码优化 理 生成目标程序 O.P 编译原理 2017年5月5 日 第8章 静态语义分析和中间代码生成  符号表  静态语义分析  中间代码生成 编译原理 2017年5月5 日 符号表  符号表 (symbol tables ) •名字信息建立后加入/ 更改符号表 名字信息如:种类,类型,偏移地址,占用空间等 • 需要获取名字信息时,查找符号表 •符号表的组织可以体现名字作用域规则 编译原理 2017年5月5 日 符号表的作用  用来存放有关标识符(符号)的属性信息 • 这些信息会在编译的不同阶段用到 • 符号表的内容将用于静态语义检查和产生中间代码 • 在目标代码生成阶段,符号表是对符号名进行地址 分配的依据 • 对一个多遍扫描的编译程序,不同遍所用的符号表 也会有所不同,因为每遍所关心的信息或所能得到 的信息会有差异  用来体现作用域与可见性信息 编译原理 2017年5月5 日 符号的常见属性  符号名  符号的类别  符号的类型  符号的存储类别和存储分配信息  符号的作用域信息  其他属性 • 数组内情向量 • 记录结构的成员信息 • 函数及过程的形参 编译原理 2017年5月5 日 符号表的实现  针对符号表的常见操作 • 创建符号表 在编译开始,或进入一个作用域 • 插入表项 在遇到新的标识符声明时进行 • 查询表项 在引用标识符时进行 • 修改表项 在获得新的语义值信息时进行 • 删除表项 在标识符成为不可见或不再需要它的任 何信息时进行 • 释放符号表空间 在编译结束前或退出一个作用域 编译原理 2017年5月5 日 符号表的实现  实现符号表的常用数据结构 • 一般的线性表 如:数组,链表,等 • 有序表 查询较无序表快,如可以采用折半查找 • 二叉搜索树 • Hash表 编译原理

文档评论(0)

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

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

1亿VIP精品文档

相关文档