实验三 递归下降分析子程序
一、实验目的
掌握最基本的自顶向下分析方法,即递归下降子程序方法,理解其特点和适用范围(回
溯,左递归等现象),锻炼递归调用程序的构造方法。
二、实验内容
给定表达式文法 G[E]:
E→E+T | T
T→T*F |F
F→( E ) | i
根据该文法,编写递归下降分析子程序。
1. 输入:任意的符号串( 上述文法的终结符号“(”、“)”、“i”、“+”、“*”)
2. 处理:调用递归下降分析程序
3. 输出:判断输入串是否合法表达式
三、实验要求
1.根据递归下降子程序要求,对上述文法做左递归消除,得到一个能进行确定的自顶向下分
析的文法(实验三可以手工构造左递归消除和左公共因子提取,但实验四必须要实现该算
法,如果本次实验做了,实验四可以直接调用,两次实验可以适当考虑相同的数据结构)
提示:文法可保存为文本文件形式,每行表示一条产生式,左右两部分通过::来区分,如:
E :: E + T
E :: T
T :: T * F
……
选择合适的数据结构来存储产生式规则。
2.任选一种编程语言实现递归下降分析程序
3.写出实验报告,在实验报告里要写清楚测试结果(至少包含 3 条正确输入和 2 条错误输入)
评论0