当前位置:文档之家› 编译方法实验报告模板

编译方法实验报告模板

编译方法实验报告
东北大学软件学院
2006年4月
一、实验目的
熟悉算术表达式的语法分析与中间代码生成原理。

二、实验内容
(1) 设计语法制导翻译生成表达式的四元式的算法;
(2) 编写代码并上机进行调试运行
三、实验原理及基本步骤
1.递归子程序:
(1) 算术表达式文法
G(E):E →E ω0 T | T
T →T ω1 F | F
F →i | (E)
(2) 文法变换
G’(E) E →T {ω0 T}
T →F {ω1 F}
F →i | (E)
(3) 属性翻译文法:
E →T {ω0“push(SYN, w)” T “QUAT”}
T →F {ω1“push(SYN, w)” F “QUAT”}
F →i “push(SEM, entry(w))” | (E)
2.LL(1):
(1) 算术表达式文法
G(E):E →E ω0 T | T
T →T ω1 F | F
F →i | (E)
(2) 文法变换
G’(E) E -> T E`
E` ->ω0 T E` | e
T -> F T`
T` ->ω1F T` | e
F -> i | ( E )
(3) 属性翻译文法:
E -> T E´①
E´-> +T {GEQ(+)} E´②| -T {GEQ(-)} E´③| e④
T -> F T´⑤
T´-> *F {GEQ(*)} T´⑥| /F {GEQ(/)} T´⑦| e⑧
F -> i {PUSH(i)} ⑨| ( E ) ⑩
(4) LL(1):
分析表:
四、数据结构设计
1. 递归子程序:
数据结构:SYN —算符栈;
SEM —语义栈;
2. LL(1):
五、关键代码分析(带注释)及运行结果
结果:
六、总结与分析
七、实验思考题。

相关主题