编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算

  • 1.语法制导翻译
    • 1.1属性文法
    • 1.2算术表达式的计数器
    • 1.3属性的分类
    • 1.4属性依赖图
      • 继承属性的计算
    • 1.5语义规则的计算方法
    • 1.6属性计算次序
  • 2. S属性定义
    • 2.1 语法树与分析树
    • 2.2 语法树与DAG
      • 2.2.1构造表达式的语法树(DAG)
      • 2.2.2属性结构树
      • 2.2.3表达式的语法树
  • 3.L-属性定义
    • 3.1深度优先次序
    • 3.2非L-属性定义的语法制导定义
    • 3.3翻译方案中的动作
    • 3.4翻译方案的书写
    • 3.5类型说明的语法制导定义
      • 3.5.1属性传递
    • 3.6翻译方案的计算次序
  • 4. S-属性定义的自底向上计算
    • 4.1 属性栈与分析栈
    • 4.2计算表达式的(栈)代码
    • 4.3自底向上计算继承属性
  • 5. C声明的翻译方案
    • 5.1C声明的“代码段”
  • 6. 模拟继承属性的计算
    • 6.1引入标记非终结符
    • 6.2 文字排版的语法制导定义
    • 6.3文字排版的翻译方案
  • 7. (L-属性定义)自顶向下翻译
    • 7.1删除翻译方案中的左递归
    • 7.2(递归下降)预测翻译器的设计
    • 7.3递归翻译函数

1.语法制导翻译

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第1张图片

1.1属性文法

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第2张图片编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第3张图片

1.2算术表达式的计数器

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第4张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第5张图片

1.3属性的分类

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第6张图片

1.4属性依赖图

继承属性的计算

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第7张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第8张图片

1.5语义规则的计算方法

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第9张图片

1.6属性计算次序

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第10张图片

2. S属性定义

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第11张图片

2.1 语法树与分析树

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第12张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第13张图片

2.2 语法树与DAG

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第14张图片

2.2.1构造表达式的语法树(DAG)

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第15张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第16张图片

2.2.2属性结构树

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第17张图片

2.2.3表达式的语法树

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第18张图片

3.L-属性定义

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第19张图片

3.1深度优先次序

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第20张图片

3.2非L-属性定义的语法制导定义

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第21张图片

3.3翻译方案中的动作

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第22张图片编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第23张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第24张图片

3.4翻译方案的书写

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第25张图片

3.5类型说明的语法制导定义

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第26张图片

3.5.1属性传递

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第27张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第28张图片

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第29张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第30张图片

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第31张图片

3.6翻译方案的计算次序

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第32张图片

4. S-属性定义的自底向上计算

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第33张图片

4.1 属性栈与分析栈

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第34张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第35张图片

4.2计算表达式的(栈)代码

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第36张图片
黄色表示该属性就位于栈顶,省略栈代码

4.3自底向上计算继承属性

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第37张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第38张图片

5. C声明的翻译方案

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第39张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第40张图片

5.1C声明的“代码段”

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第41张图片

6. 模拟继承属性的计算

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第42张图片

6.1引入标记非终结符

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第43张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第44张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第45张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第46张图片

6.2 文字排版的语法制导定义

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第47张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第48张图片

6.3文字排版的翻译方案

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第49张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第50张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第51张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第52张图片

7. (L-属性定义)自顶向下翻译

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第53张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第54张图片

7.1删除翻译方案中的左递归

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第55张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第56张图片

7.2(递归下降)预测翻译器的设计

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第57张图片
在这里插入图片描述

7.3递归翻译函数

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第58张图片
编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算_第59张图片

你可能感兴趣的:(笔记,编译原理,计算机网络,编译原理,语法制导翻译,属性文法)