《递归下降子程序编写》由会员分享,可在线阅读,更多相关《递归下降子程序编写(2页珍藏版)》请在金锄头文库上搜索。
1、实验 5-6 递归下降子程序的编写一、实验目的通过本实验,了解递归下降预测分析的原理和过程以及可能存在的回溯问题,探讨解决方法,为预测分析表方法的学习奠定基础。分析递归下降子程序的优缺点。二、实验准备1预习自上而下语法分析小节的内容;2学生自己考虑使用的开发环境,如 VC+,熟悉开发环境。三、实验内容下列文法中选做一题:1针对算术表达式文法:ETEE +TE|TFTT *FT |F(E) |i为其编写递归下降子程序,判定某个算术表达式是否正确:如j+k*m,j*k+m输入:其输入数据应该为词法分析器输出的记号形式:i+i*i,i*i+i 输出:分析结果:算术表达式结构正确或结构错误。2给定文法
2、(PASCAL 语言标识符定义文法) typesimple|id|arraysimple of typeSimpleinteger|char|num dotdot num 其中:dotdot 表示. 编写递归下降子程序,判定一个句子结构是否正确:array 3.5of integer 输入:其输入数据应该为词法分析器输出的单词序列:arraynum dotdot num of integer 输出:该句子结构是正确或错误 3给定文法: S(T)|a+S|aTT,S|S 改写文法,使其可以使用递归下降子程序方法进行分析,编写递归下降子程序,判断句子:(a+a+a) ,a+a) ,a)是否符合该文法。 S(T)|aSS+S|TSTT,ST| 输入:(a+a+a) ,a+a) ,a) 输出:结构正确或结构错误 四、实验要求 1编写程序调试运行;考虑如果将你的程序改为识别其他的文法,你的递归下 降子程序可否通用,考虑递归下降子程序方法的优缺点。 2撰写实验报告:实验名称、实验目的、实验内容、实验结果、结果分析(就 第 1 项要求做出回答) 。 五、实验时间 第第 7 周周 周三(周三(4.14)第)第 2 单元单元 上机地点:计算机系机房上机地点:计算机系机房