![编译原理递归下降子程序[1].doc_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-3/12/080f9261-9de6-4280-bad0-c16b735eb355/080f9261-9de6-4280-bad0-c16b735eb3551.gif)
![编译原理递归下降子程序[1].doc_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-3/12/080f9261-9de6-4280-bad0-c16b735eb355/080f9261-9de6-4280-bad0-c16b735eb3552.gif)
![编译原理递归下降子程序[1].doc_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-3/12/080f9261-9de6-4280-bad0-c16b735eb355/080f9261-9de6-4280-bad0-c16b735eb3553.gif)
![编译原理递归下降子程序[1].doc_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-3/12/080f9261-9de6-4280-bad0-c16b735eb355/080f9261-9de6-4280-bad0-c16b735eb3554.gif)
免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理课程实验报告课程实验题目: 递归下降子程序实验 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术 作者所在班级: xxxx 作 者 学 号: xxxxx _作 者 姓 名 : xxxx 指导教师姓名: xxxxx 完 成 时 间 : 2011年3月28日 一、实验目的通过本实验,了解递归下降预测分析的原理和过程以及可能存在的回溯问题,探讨解决方法,为预测分析表方法的学习奠定基础。分析递归下降子程序的优缺点。二、实验内容及要求1 针对算术表达式文法:ETE E +TE| TFT T *FT | F(E) |i为其编写递归下降子程序,判定某个算术表达式是否正确:如j+k*m,j*k+m输入:其输入数据应该为词法分析器输出的记号形式:i+i*i,i*i+i输出:分析结果:算术表达式结构正确或结构错误。三、实验程序设计说明1实验方案设计 各个函数之间的调用关系如下图所示:2 程序源代码源代码如下:#include#include#include#includechar a10;int lookahead=0;void E1();void T();void T1();void F();void E() printf(E-TEn); T(); E1();void E1()if(alookahead=+) printf(E-+TEn); lookahead+;T();E1(); else printf(T-n);void T() printf(T-FTn);F();T1();void T1()if(alookahead=*)printf(T-*FTn); lookahead+;F();T1();else printf(T-n);void F()if(alookahead=i) printf(F-in); lookahead+; else if (alookahead=() lookahead+; E();if(alookahead=) printf(F-(E)n); lookahead+; elseprintf(n括号不匹配分析失败!n); exit (0); else printf(括号不匹配,分析失败!n); exit(0); int main()while(1)printf(请输入算数表达式(以#键结束):); scanf(%s,a);E();if(alookahead=#) printf(句子结构正确n); else printf(无结束标志,分析失败n);return 0;3程序的执行结果程序运行结果如下所示: 四、实验中出现的问题及解决方法1. 错误处理:最初程序只是将所有的错误都简单的显示为句子结构错误,并没有进行具体详细的说明和解释,最后通过修改程序,细化错误类型,使用了对if语句的嵌套,将错误分为三种类型。2. 句子结构分析:最初程序只能分析结构比较简单的句子类型,比如输入的字符不匹配等问题,输入类似i+i*+等缺少操作数结构类型的句子则不能做出正确的判断,通过修改F()等相关函数解决了这个问题;但此程序只能分析此类文法的句子结构,如果文法改变则需要修改程序,才能进一步分析对应的句子结构。 尽管,在实验过程中遇到的问题得到了解决,但是仍然有很多缺陷。尤其是在进行错误处理时只有三种,并不完善,并没有对错误进行详细的分析和说明的功能。五、体会、意见或建议 通过本次实验基本掌握了语法分析的原理和递归下降子程序分析方法,通过编写程序进一步复习巩固了c语言的相关知识,由于对c语言的掌握不扎实,在编程过程中遇到了很多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》考前冲刺训练试卷及完整答案详解【全优】
- 农副食品新品种选育与繁殖技术推广创新创业项目商业计划书
- 教师招聘之《小学教师招聘》练习题库(满分必刷)附答案详解
- 教师招聘之《小学教师招聘》考试押题密卷含答案详解(预热题)
- 2025年呼伦贝尔莫力达瓦达斡尔族自治旗内蒙古大学校园引才笔试备考附答案详解
- 教师招聘之《幼儿教师招聘》含答案详解【培优b卷】
- 水利部旱情遥感监测系统建设与展望中国水利水电科学研究院
- 教师招聘之《小学教师招聘》检测卷讲解附参考答案详解(能力提升)
- 2025年教师招聘之《小学教师招聘》练习题库附答案详解【研优卷】
- 2025年工业互联网区块链智能合约安全漏洞扫描与修复技术解析报告001
- 80年血火淬炼此刻亮剑正当时:纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵仪式对初中生的启示-2025-2026学年初中主题班会
- 2025-2026学年西师大版(2024)小学数学一年级上册(全册)教学设计(附目录P227)
- 2025年大型集团财务审计外包服务合同风险防控条款规范
- 2025年国家保安员资格考试复习题库(附答案)
- 辅警考试真题(含答案)
- 新式茶饮基础知识培训课件
- 2025新疆天泽和达水务科技有限公司部分岗位社会招聘28人笔试模拟试题及答案解析
- 巧堆肥劳动课件
- 技术方案评审表-技术选型决策
- 万用表专业培训资料共23张课件
- 启闭机设备安装与调试施工方案
评论
0/150
提交评论