- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机]第四章 语法制导翻译生成中间代码
第四章 语法制导翻译生成中间代码 4.1 语法制导翻译简介4.1.1 语法与语义 4.1.1 语法与语义(续1) 4.1.2 属性与语义规则 4.1.2 属性与语义规则(续1) 上次课主要内容 4.1.2 属性与语义规则(续2) 4.1.3 语义规则的两种形式 4.1.3 语义规则的两种形式(续1) 4.1.3 语义规则的两种形式(续2) 4.1.3 语义规则的两种形式(续3) 4.1.3 语义规则的两种形式(续4) 4.1.4 LR分析翻译方案的设计 4.1.4 LR分析翻译方案的设计(续1) 4.1.4 LR分析翻译方案的设计(续2) 4.1.5 递归下降分析翻译方案的设计 4.2. 中间代码简介 4.2.1 后缀式 2 计算后缀式的虚拟机 4.2.1 后缀式(续1) 4.2.1 后缀式(续2) 4.2.2 三地址码 2 三地址码的种类(98页) 3 三地址码的实现:三元式与四元式 上次课主要内容 语法制导翻译设计的基本步骤: 3 三地址码的实现(续1) 3 三地址码的实现(续2) 3 三地址码的实现(续3) 3 三地址码的实现(续4) 3 三地址码的实现(续5) 4.2.3 图形表示 2 树的语法制导翻译 3 树的优化表示-DAG 4 树与其他中间代码的关系 4 树与其他中间代码的关系(续) 4.3 符号表简介 4.3.1 符号表条目 4.3.1 符号表条目(续) 4.3.2 构成名字的字符串的存储 4.3.2 构成名字的字符串的存储(续) 4.3.3 名字的作用域 4.3.3 名字的作用域(续1) 4.3.3 名字的作用域(续2) 4.3.3 名字的作用域(续3) 4.3.4 线性表 4.3.4 线性表(续1) 上次课主要内容 4.3.5 散列表 2 散列表上的操作 4.3.5 散列表(续1) 4.3.5 散列表(续2) 3 散列函数的计算 hash: string→ integer 3 散列函数的计算(续1) 4.4 声明语句的翻译 1 变量的类型定义与声明 2 变量声明的语法制导翻译 2 变量声明的语法制导翻译(续1) 2 变量声明的语法制导翻译(续2) 4.4.3 过程的定义与声明 4.4.3.1 左值与右值 4.4.3.2 参数传递 1 值调用 值调用举例: 1 值调用(续1) 1 值调用(续2) 2 引用调用 2 引用调用(续1) 2 引用调用(续2) 2 引用调用(续3) 3 复写-恢复 3 复写-恢复(续1) 3 复写-恢复(续2) 上次课主要内容 4 换名调用 4 换名调用(续1) 4 换名调用(续2) 4.4.3.3 作用域信息的保存1 过程的作用域 1 过程的作用域(续1) 1 过程的作用域(续2) 2 符号表中的作用域信息 符号表中的作用域信息: 3 语法制导翻译生成符号表(a) 简化的过程定义文法(忽略了参数): (b) 全程量、属性与语义函数 (b) 全程量、属性与语义函数(续) (c) 语义规则 (d) 语法制导翻译的过程 (d) 语法制导翻译的过程(续1) 4.5 简单算术表达式与赋值句 4.5.1 简单变量的语法制导翻译 上次课主要内容 4.5.2 变量的(内部)类型转换 4.5.2 变量的(内部)类型转换(续1) 4.5.2 变量的(内部)类型转换(续2) 4.5.2 变量的(内部)类型转换(续3) 4.6 数组元素的引用 确定映射方式的两种方法 4.6.1 数组元素的地址计算 一维数组元素的地址计算: n维数组元素的地址计算 n维数组元素的地址计算(续1) 4.6.2 数组元素引用的语法制导翻译 2 属性和函数 3语义规则 3语义规则(续1) 4 分析举例 数组元素引用语法制导翻译的产生式 主要分析步骤: 4 分析举例(续1) 4.7 布尔表达式4.7.1 布尔表达式的作用与结构 布尔运算的优先级与结合性 4.7.2 布尔表达式的计算方法 1 数值表示的直接计算 2 逻辑表示的短路计算 3 短路计算的必要性 上次课主要内容 简单算术表达式与赋值句的语法制导翻译:内部类型转换 数组元素的引用 数组元素地址的两个要素:首地址和偏移量 地址计算公式(三个假设条件):a-c+v 数组元素引用的语法制导翻译 文法设计:增加V,并可以进行递推计算 设计必要的属性与函数: .a
文档评论(0)