递归下降语法分析器报告.doc

递归下降语法分析器报告.doc

ID:56139781

大小:285.50 KB

页数:13页

时间:2020-03-17

递归下降语法分析器报告.doc_第1页
递归下降语法分析器报告.doc_第2页
递归下降语法分析器报告.doc_第3页
递归下降语法分析器报告.doc_第4页
递归下降语法分析器报告.doc_第5页
资源描述:

《递归下降语法分析器报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、学生实验报告(理工类)课程名称:编译原理专业班级:计算机科学与技术(1)学生学号:0905101005学生姓名:周浩所属院部:信息技术学院指导教师:2011——2012学年第2学期金陵科技学院教务处制13实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清

2、晰。(3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。13实验项目名称:语法分析程序实验学时:6同组学生姓名:无实验地点:A203实验日期:实验成绩:批改教师:批改时间:13一、实验目的和要

3、求1、目的通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,进一步掌握常用的语法分析方法。2、要求选择最有代表性的语法分析方法,如算符优先法、递归子程序法和LR分析法;选择对各种常见程序语言都用的语法结构,如赋值语句,特别是表达式,作为分析对象,并且与所选语法分析方法要比较贴切。二、实验仪器和设备硬件:PC机软件:c++三、实验过程1、实验内容算术表达式的文法可以是(可以根据需要适当改变):E→E+E

4、E-E

5、E*E

6、E/E

7、(E)

8、i根据递归下降分析法或预测分析法,对表达式进行语法分析,判断一个表达式是否正确。2、实验步

9、骤(1)准备:1.阅读课本有关章节,确定算术表达式的文法;(设计出预测分析表);2.考虑好设计方案;3.设计出模块结构、测试数据,初步编制好程序。(2)上机调试,发现错误,分析错误,再修改完善。教师根据学生的设计方案与学生进行探讨,以修改方案和代码。(3)改造后的文法:E→E+T

10、E-T

11、TT→T*F

12、T/F

13、FF→F^P

14、PP→c

15、id

16、(E)3、实验设计思想(1)主程序示意图如图1所示。(2)递归下降分析程序示意图如图2所示。(3)语句串分析过程示意图如图3所示。(4)statement语句分析函数流程如图4,5,6,所示。13图1递归下降分析程序示意图图2语句串分析示

17、意图13是否是调用scaner是否:=?调用scaner是否标识?出错处理调用expression函数图3statement语句分析函数示意图否出错处理调用term函数调用scaner是否+,-?调用term函数是图4expression表达式分析函数示意图13否是调用factor函数调用scaner是否*,/?调用factor函数出错处理图5term分析函数示意图图6factor分析过程示意图4、实验程序介绍(1)程序结构分析13开始实例化对象输入符号串进行语法分析递归调用程序判断文法输出,结束(2)程序总体流程图或结构图(3)程序函数块简介1.语法分析的主程序voidm

18、ain(){p=0;printf("********************语法分析程序***************");13printf("请输入源程序:");do{scanf("%c",&ch);prog[p++]=ch;}while(ch!='#');p=0;scaner();lrparser();printf("语法分析结束!");}1.编写扫描子程序voidlrparser(){if(syn==1)//begin{scaner();yucu();if(syn==6)//end{scaner();if(syn==0&&kk==0)printf("suc

19、cess");}else{if(kk!=1)printf("error,lose'end'!");kk=1;}}else{printf("error,lose'begin'!");kk=1;}return;}voidyucu(){statement();while(syn==26)//;{scaner();statement();}return;13}voidstatement(){if(syn==10){scaner();if(syn==18){scaner();expression();}else{

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

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

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