递归下降子程序编写
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 递归下降子程序的编写
一、实验目的
通过本实验,了解递归下降预测分析的原理和过程以及可能存在的回溯问题,探讨解决方法,为预测分析表方法的学习奠定基础。分析递归下降子程序的优缺点。
二、实验准备
1.预习自上而下语法分析小节的内容;
2.学生自己考虑使用的开发环境,如VC++,熟悉开发环境。
三、实验内容
下列文法中选做一题:
1.针对算术表达式文法:E→TE’
E’→ +TE’|ε
T→FT’
T’→*FT’ |ε
F→(E) |i
为其编写递归下降子程序,判定某个算术表达式是否正确:如j+k*m,j*k+m
输入:其输入数据应该为词法分析器输出的记号形式:i+i*i,i*i+i
输出:分析结果:算术表达式结构正确或结构错误。
2.给定文法(PASCAL语言标识符定义文法)(选做)
type→simple|↑id|array[simple] of type
Simple→integer|char|num dotdot num
其中:dotdot表示..
编写递归下降子程序,判定一个句子结构是否正确:array [3..5]of integer 输入:其输入数据应该为词法分析器输出的单词序列:array[num dotdot num] of integer
输出:分析结果
四、实验要求
1.编写程序调试运行;考虑如果将你的程序改为识别其他的文法,你的递归下降子程序可否通用,考虑递归下降子程序方法的优缺点。
2.撰写实验报告:实验名称、实验目的、实验内容、实验结果、结果分析
五、实验时间
第七周周三2单元上机地点:软一