吴秀格编译原理实验二

吴秀格编译原理实验二

ID:44131513

大小:171.50 KB

页数:6页

时间:2019-10-18

吴秀格编译原理实验二_第1页
吴秀格编译原理实验二_第2页
吴秀格编译原理实验二_第3页
吴秀格编译原理实验二_第4页
吴秀格编译原理实验二_第5页
资源描述:

《吴秀格编译原理实验二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、南京信息工程大学实验(实习)报告实验(实习)名称递归下降语法分析程序的设计与实现口期2013.11.28得分_指导教师闫雷鸣系计算机与软件学院专业网络工程年级2011级班次2班姓名吴秀格学号20111346050一、实验目的1.学会消除左递归。2.深刻领会口顶向下语法分析。3.利用无左递归的文法设计实现递归下降分析程序识别该文法描述的句了二、实验内容输入:源算数表达式符号串。输出:语法是否合法。算数表达式文法:E->T

2、E+TT->F

3、T*FF-(E)

4、i(1)对文法先进行消除左递归(2)利用递归下降思、想,画

5、出各非终结符的程序流程图(3)编写代码(4)测试:输入合法算法表达式,例如i+j*k,判读正确,若输入非法,例如*i+j则应能判断错误三、实验步骤1)对文法先进行消除左递归,得到等价文法E_TE,E'-*+TE,

6、£T-FT,V-*FT,

7、£(E)

8、i2)利用递归下降思想,画出各非终结符的程序流程图如图1所示;3)编写代码,应川递归下降分析技术构造每个非终结符号相应的子程序,详细代码见附录源代码;4)测试:输入合法算法表达式,例如i+j*k,判读正确,若输入非法,例如*i+j则应能判断错误;程序流程图:出口N二

9、_>取符号_T_>E,J出口八图1程序流程图四、实验结果c*MG:S译原理Debugyufafenxi.exe*艮卩

10、口、昇頂匕、口j球符合语法?anykeytocontinue图2输入i+j様的结果截图结東输人〉:*i+j#*G:译原理Debugyufafenxi.exe输句主冃五口入要分析的语句〈请以",右符合语法sanykeytocontinue-图3输入“+j的结果截图图4输入a的结果截图五、实验总结通过这次试验,我熟练掌握了递归下降分析技术,并口把它熟练应用于实践。在这次实验过程屮,我本來

11、想加入一个选择程序,可以讣使用人员选择是否继续进行测试,如果继续,则接着测试,否则退出。但是由丁思虑不周导致在第一次实习的时候出现问题,即两次测试同一个句了,测试结果却不相同。我的猜测是因为ststic静态变量和getchar()输入字符导致的,鉴于我的水平有限故而放弃了这个功能,但是我的程序还是符合老师要求的。附录:源代码#includettdefinenum30charjuzi[num];//用于存储输入的耍判断的句子charsym;staticintj二0;//用于记录当前得到的字符的下

12、标staticintsign=3;//sign=0时符合语法,sign-1时不符合语法staticintclength=0;voidEl();voidT0;voidT1();voidF();〃输入要判断的句子voidGetjuzi0{chartemp=,';printfC请输入要分析的语句(请以'护结束输入):“);for(inti=0;temp!='#';i++){tcmp=gctchar0;juzi[i]=temp;clength++;}printf(“语句");for(intm=0;m

13、;m++){printf("%c",juzi[m]);}}//得到一个字符voidGetSymbol(){sym=juzi[j];j++;}〃不符合语法的情况voidError0sign二1;voidE(){TO;E10;if((j—clength)&&sig门==3)sign=0;}voidEl(){if(sym==,+'){GetSymbol();TO;E10;))voidT(){F();T10;}voidT1(){if(sym==,*,){GetSymbol();F();Tl();}}voidF(){if

14、(sym>=,a'&&sym<=,z')GetSymbol();elseif(sym==,(')GetSymbol();EO;if(sym二二')’)GetSymbol0;elseError();}elseError0;}//主函数voidmainO{Gctjuzi();GetSymbol();E();if(sign二二0)printf(z,符合语法!");elseif(sign==l)printf("不符合语法");}

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

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

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