第3,4课 一个简单的语法制导翻译器

第3,4课 一个简单的语法制导翻译器
预览:

第3,4次课 一个简单的语法制导翻译器
2.3~2.5

中缀表达式转后缀表达式


本次课主要内容都是基于如何将中缀表达 式转换为后缀表达式 9 – 5 + 2 -> 95-2+

2.3语法制导翻译的定义

第二章 一个简单的语法制导翻译器


语法制导翻译:对语法树进行语义分析
例如:将中缀表达式转化成为后缀 9 - 5 + 2  95–2+
list

list list digit

digit





digit 9 - 5 + 2

第二章 一个简单的语法制导翻译器


语法制导翻译:对语法树进行语义分析
语法制导定义 语法制导翻译方案

第二章 一个简单的语法制导翻译器


语法制导翻译
语法制导定义

例子:9-5+2

expr.t = 95-2+ expr.t = 95expr.t = 9 + term.t = 2 2

(syntax-directed definition)
 每个文法符号和一个属

term.t = 5 5

term.t = 9
9
产生式
expr  expr1 + term expr  expr1 - term

性集合相关联
 例树中‖.t‖是属性

语义规则
expr.t = expr1.t || term.t || ‗+‘ expr.t = expr1.t || term.t || ‗-‘ expr.t = term.t term.t = ‗0‘ term.t = ‗1‘ … term.t = ‗9‘

 每个产生式和一组语义

expr  term term  0 term  1 … term  9

规则相关联

第二章 一个简单的语法制导翻译器


语法制导翻译
属性  综合属性
如果某个属性在语法分析树节点N上的值由N的子节点和N

本身的属性值确定,则该属性为综合属性
 继承属性
如果某个属性由语法分析树中该节点本身、父节点以及兄

弟节点上的属性值决定,则该属性为继承属性

第二章 一个简单的语法制导翻译器


后缀表达式(postfix notation):E
 如何E是一个变量或常量,则E的后缀是本身  如果E是一个形如E1 op E2的表达式,op是二目运算

符,那么E的后缀表示是:E1‘ E2‘ op,这里E1‘ 和E2‘分 别是E1和E2的后缀表示  如果E是一个形如(E1)的表达式,则E的后缀表示就 是E1的后缀表示

第二章 一个简单的语法制导翻译器


语法制导翻译
语法制导定义

expr.t = 95-2+ expr.t = 95expr.t = 9 + term.t = 2 2

(syntax-directed definition)
 每个文法符号和一个属

term.t = 5 5

term.t = 9
9
产生式
expr  expr1 + term expr  expr1 - term

后缀表达式
语义规则
expr.t = expr1.t || term.t || ‗+‘ expr.t = expr1.t || term.t || ‗-‘ expr.t = term.t term.t = ‗0‘ term.t = ‗1‘ … term.t = ‗9‘

性集合相关联
 例树中‖.t‖是属性

 每个产生式和一组语义

expr  term term  0 term  1 … term  9

规则相关联

第二章 一个简单的语法制导翻译器


语法制导翻译
语法制导定义

expr.t = 95-2+ expr.t = 95expr.t = 9 + term.t = 2 2

(syntax-directed definition)
 每个文法符号和一个属

term.t = 5 5

term.t = 9
9
产生式
expr  expr1 + term expr  expr1 - term expr 

第1页/共48页 下一页>尾页