![](https://csdnimg.cn/release/download_crawler_static/86653461/bg1.jpg)
实验题目:表达式中间代码生成
一、实验目的
熟悉算术表达式的语法分析与中间代码生成原理
二、实验内容
1.构造算术表达式的四元式翻译文法
2.设计算术表达式的递归下降子程序分析算法
3.设计算术表达的四元式生成算法
4.实现代码并调试运行
三、实验要求
输入——算术表达式;
输出——算术表达式
四、设计概要
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)
其中:push(SYN,w)---当前单词 w 入符号栈 SYN;
push(SEM,entry(w))--- 当前 i 在符号表中的入口值压入语义栈
SEM;
QUAT---生成四元式函数
T:=newtemp;
QT[j]=(SYN[k],SEM[s-1],SEM[s],T);j++;
pop(SYN,_);pop(SEM,_);pop(SEM,_); push(SEM,T);