实验三 中间代码生成
学号: 1152185;姓名:马小军
实验目的
1.了解并掌握中间代码的生成过程和作用
2.了解并掌握四元式
3.体会属性文法在中间代码生成过程中的作用
。
实验环境
Windows7 操作系统 vs2010 编程环境
实验内容
从文件中读入表达式,输出其四元式的结果序列
本程序只能生成赋值语句及算数表达式中间代码的四元式不能生成逻辑表达式及其他复
杂语句中间代码的四元式
实验原理
三、以逆波兰式为例的实验设计思想及算法
(1)首先构造一个运算符栈,此运算符在栈内遵循越往栈顶优先级越高的原则。
(2)从左至右扫描该算术表达式,从第一个字符开始判断,如果该字符数字,则分析到该数
字串的结束并将该数字存入数组。
(3)如果不是数字,该字符则是运算符,此时需比较优先关系。
做法如下:将该字符与运算符栈顶的运算符的优先关系相比较。如果,该字符优先关系高
于此运算符栈顶的运算符,则将该运算符入栈。倘若不是的话,则将此运算符栈顶的运算
符从栈中弹出,将该字符入栈。
(4)重复上述操作 (2)-(3)直至扫描完整个简单算术表达式,确定所有字符都得到正确处理,
我们便可以将中缀式表示的简单算术表达式转化为四元式。
下面给出算法流程图