- 40
- 0
- 约1.87万字
- 约 69页
- 2017-01-09 发布于北京
- 举报
[第五章语法制导翻译.
第五章 语法制导翻译 5.4 ~ 5.5 5.4 语法制导的翻译模式(Translation Scheme) 语法制导翻译模式(SDT)是拓广的CFG, 在文法中嵌入语义动作,语义动作写在花括号“{}”里,可以出现在产生式右部适当位置。 当归约出产生式右部的某个非终结符号后,就执行紧接在该非终结符号右边的语义动作。 我们希望SDT能够在语法分析的同时进行,无需构造好分析树。这里讨论两类: 基础文法是LR,SDD是S-attributed; 基础文法是LL,SDD是L-attributed。 5.4.2 后缀SDT的语法分析实现 A ? X Y Z 例5.15 显式操作语法分析栈 5.4.3 产生式内部带语义动作的SDT B ? X {a} Y LR:归约出X之后立即执行{a} LL: Y之前执行{a} 例,翻译为后缀表达式(第2章的例子) L ? E n E ? E1+ T {print(‘+’)} E ? T T ? T1* F {print(‘*’)} T ? F F ? (E) F ? digit {print(digit.lexval)} 例5.16 翻译为前缀表达式 L ? E n E ? {print(‘+’)} E1+ T E ? T T ? {print(‘*’)} T1* F T ? F F ? (E) F ? digit {print(digi
原创力文档

文档评论(0)