全球旧事资料 分类
武汉理工大学《编译原理》课程设计说明书
WHILE循环语句的翻译程序设计
问题描述1问题描述
实现思想1.1实现思想本次设计用java高级语言识别的是C语言的while循环语句的文法通过良好的用户界面实现相应的输入和输出。。语法分析器构造1.2语法分析器构造该程序的语法分析器能对输入的语法进行分析,判断输入语句能否满足while循环语句的文法。通过递归下降的方法对语句进行分析,看能否通过开始符号推导出来。语义分析器构造1.3语义分析器构造该程序的语义分析器就是对分析结果进行输出,要求输出结果是三地址形式的。
2文法描述
2.1文法描述
while语句while条件表达式赋值语句while语句
2.2递归文法
while语句文法:SwhileBSiEBErelopErelopEEEEEEEEEEi
在编写程序的时候用到的是递归下降法,而递归下降法对文法的要求是不能包含左递归,对上述的文法进行消除左递归之后,得到如下的递归文法:SwhileBSiEBErelopErelopEEFiF
F
1
f武汉理工大学《编译原理》课程设计说明书
FEFEFEFEFε
3语法分析方法描述
3.1实现思想
递归下降识别程序是由一组子程序组成,每个子程序对应于一个非终结符号SBEFrelop。该子程序处理相应句型中相对于此非终结符号的产生式。在定义文法时,是递归定义的,所以这些子程序也是递归的。当一个子程序调用另一个子程序时,总是先执行被调用的子程序,然后再执行后继的程序。程序中5个子程序,其中S是开始符号,也是递归下降分析的入口,通过调用词法分析器进行单词分析,并通过Getsymbol函数返回当前所分析到的单词,然后在递归语法分析中根据这个单词分析下一步要执行的子程序。
3.2具体设计
一下图示反映了在程序调用过程中遇到终结符符时调用的函数次序具体的步骤在概要设计时具体体现见下图
2
f武汉理工大学《编译原理》课程设计说明书
S
whilei

BE

B
E
relop
E
relop

Ei

E

F
FF
F
EEEE
4中间代码形式的描述
4.1三地址代码
在本程序中用到了三地址语句的输出包括以下的种类:赋值语句:xyopz复制语句:xy条件转移语句:ifxrelopygotoL例如,本程序中语句whileBS可以输出三地址代码为:ifBgotoLelsegotoL
ext;而EEF可以输出三地址代码为:E1E2F。
4.2本程序中的三地址代码
3
f武汉理工大学《编译原理》课程设计说明书
SwhileBSSiEBErelopErelopreloprelopEr
好听全球资料 返回顶部