天天看点

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成

  • 语法制导翻译
    • 语法制导定义(属性文法)
    • 翻译模式
      • 后缀式
      • 图示表示法
      • 构建表达式的语法树
  • 中间代码的种类
    • 三地址码
    • 四地址码
    • 对比
    • 举例
  • 中间代码产生的场景
    • 说明语句的翻译
    • 举例
  • 嵌套说明语句的翻译方案
    • 相关定义
    • 举例
    • 过程嵌套声明
  • 记录的说明
    • 记录说明的翻译
    • 记录域的偏移
    • 举例
  • 赋值语句的翻译
    • 含简单变量的赋值语句的翻译
    • 举例
  • 数组元素的翻译
    • 数组类型的声明
    • 数组元素的地址计算
    • 举例
    • 输入串的分析树
    • 翻译方案
    • 举例

语法制导翻译

  1. L属性文法包含S属性文法
    • S属性:sythesis综合属性
    • L属性:left to right继承属性
    • LL属性一定是LR属性的 ,LL文法一定是LR文法的,可以用LL自顶向下的方法分析L属性文法,L属性文法中有一些是可以自下而上分析的,因此LR不一定能够解决L属性文法,LL可以解决的问题LR不一定能够解决
      编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
  2. 语法分析中进行静态语义检查和中间代码生成的技术称为语法制导翻译技术;

语法制导定义(属性文法)

  • 引入语法制导定义的目的:
    • 为了将语义属性关联到文法符号:
    • 为了将语义规则关联到产生式:
    • 有效地将语法和语义关联起来。
  1. 为相应的语法成分设置表示语义的属性,属性的值是可以计算的。
  2. 根据属性值计算的关联关系,将其分成综合属性和继承属性;
  3. 根据属性文法中所含的属性将属性文法分成:
    • S-属性文法和L-属性文法;

翻译模式

  • 不仅将语义属性关联到文法符号、将语义规则关联到产生式,而且还通过将语义动作嵌入到产生式的适当位置来表达该语义动作的执行时机。
  • 翻译模式给语义分析的实现提供了更好的支持。
  • 编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

后缀式

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

图示表示法

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

构建表达式的语法树

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

中间代码的种类

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

三地址码

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

四地址码

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

对比

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

举例

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

中间代码产生的场景

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

说明语句的翻译

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

举例

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

嵌套说明语句的翻译方案

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

相关定义

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

举例

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

过程嵌套声明

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

记录的说明

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

记录说明的翻译

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

记录域的偏移

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

举例

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

赋值语句的翻译

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

含简单变量的赋值语句的翻译

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

举例

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

数组元素的翻译

数组类型的声明

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

数组元素的地址计算

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

举例

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

输入串的分析树

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

翻译方案

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

举例

编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译
编译原理—语义分析、语法制导翻译、翻译模式、数组元素的翻译、中间代码生成语法制导翻译中间代码的种类中间代码产生的场景嵌套说明语句的翻译方案记录的说明赋值语句的翻译数组元素的翻译

继续阅读