WHILE循环语句的翻译程序设计课设报告

WHILE循环语句的翻译程序设计课设报告

ID:44811957

大小:498.50 KB

页数:17页

时间:2019-10-29

WHILE循环语句的翻译程序设计课设报告_第1页
WHILE循环语句的翻译程序设计课设报告_第2页
WHILE循环语句的翻译程序设计课设报告_第3页
WHILE循环语句的翻译程序设计课设报告_第4页
WHILE循环语句的翻译程序设计课设报告_第5页
资源描述:

《WHILE循环语句的翻译程序设计课设报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、武汉理工大学《编译原理》课程设计1.题目:将WHILE语句转换成四元式的程序实现设计内容及要求:设计一个语法制导翻译器,将WHILE语句翻译成四元式。要求:先确定一个定义WHILE语句的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的WHILE语句,程序将其转换成四元式输出(可按一定格式输出到指定文件中)。1、系统描述通过设计、编制、调试一个WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。用语法制导完成语义分析,并将形成

2、的中间代码以四元式的形式输出。2、文法及属性文法的描述2.1文法的描述该文法的产生式如下所示:(1)S->while(B){E}(2)E->AE(3)E->A(4)A->iPA(5)A->i(6)B->iTi(7)B->i其中while、(、)、{、}、P、T、;和i均为终结符,而S、A、B、E这些大写字母均为非终结符。T表示比较运算符,P表示算术运算符,i表示合法标识符。2.2属性文法的描述对该文法的属性文法描述如下:(1)S->while(B){E}prinf(ifBgotoEelsegotonext)(2)E->AEprint(E.val=A.val·E.val)(3)

3、E->Aprint(E.val=A.val)(4)A->iPAprint(A=i.ValPA.Val)(5)A->i;A.Val=i;(6)B->iTiprint(B=i1.ValTi2.Val)武汉理工大学《编译原理》课程设计(7)B->iB.Val=i3、语法分析方法描述及语法分析表设计3.1语法分析表设计3.1.1文法的DFA武汉理工大学《编译原理》课程设计I0:S’->·SS->·W(B){E}I3:S->W(·B){E}B->·iTiB->·iI4:S->W(B·){E}I6:S->W(B)·{E}I5:B->i·TiB->i·I7:B->iT·iI9:S->W(B

4、){·E}E->·AEE->·AA->·iPAA->·i;I10:E->A·EE->A·E->·AEE->·AA->·iPAA->·i;I11:S->W(B){E·}I12:S->W(B){E}·I13:E->AE·I14:A->i·PAA->i·;I15:A->iP·AA->·iPAA->·i;I16:A->iPA·I17:A->i;·SW(Bi){E}AiPi;EAiATiI8:B->iTi·I2:S->W·(B){E}3.1.2LR(0)分析表while(){}ioprop;#SEBA武汉理工大学《编译原理》课程设计状态0S211Z2S33S544S65r7S76S97

5、S88r69S14111010r3S14131011S1212r113r214S15S1715S141616r4r417r5r53.1.2LR(0)分析方法描述说明LR分析法的规约过程是规范推到的逆过程,所以LR分析过程是一种规范规约的过程。其分析过程为:由文法构造出该文法项目集,再根据项目集构造该文法的DFA,再判断是否有移进-规约和规约-规约冲突,若没有冲突则该文法为LR(0)的,若有冲突则该文法是SLR(1)的,最后可以构造出LR(0)分析表。然后根据LR(0)分析表进行语法分析,分析过程就是进栈和规约的过程。若能规约出开始符S,则语法正确。反之,语法错误。4、中间代码

6、形式的描述及中间代码序列的结构设计本系统中所采用的中间代码形式是四元式,是一种比较普遍采用的形式。四元式的四个组成成分是:算符op,第一和第二运算对象ARG1和ARG2及运算结果RESULT。运算对象和运算结果有时指用户自己定义的变量,有时指编译程序引进的临时变量。例如a:=b*c+b*d的四元式表示如下:1)(*,b,c,t1)武汉理工大学《编译原理》课程设计2)(*,b,d,t2)3)(+,t1,t2,t3)4)(:=,t3,-,a)四元式对中间结果的引用必须通过给定的名字,也就是说,四元式的联系是通过临时变量实现的。将while(BropC)gotoL写成(jrop,B

7、,C,L)本程序中所用到的四元式语句如下:1)形如(op,arg1,arg2,result)的赋值语句2)形如(jrop,B,C,L)的条件转移语句3)形如(=,arg1,-,result)的复写语句5、编译系统的概要设计5.1词法分析词法分析程序要做的工作是:从源程序的第一个字符开始,顺序读字符,一次读一个,根据所读进的字符识别各类单词,同时去掉源程序中的空白和注释。词法分析检查的错误主要是挑出源程序中出现的非法符号。所谓非法符号是指不是程序设计语言中允许出现的符号,就像自然语句中的错字。结束符“#”

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。