编译原理—语法制导翻译、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.语法制导翻译

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递归翻译函数

 

![[附源码]SSM计算机毕业设计健身健康规划系统JAVA](https://img-blog.csdnimg.cn/82865be0f8e844b383308d3480682de5.png)

















