没有合适的资源?快使用搜索试试~ 我知道了~
首页编译原理实验报告——表达式语法分析
一、实验题目 设计一个简单的表达式语法分析器 (采用递归下降方法设计实现) 二、实验目的 1、 了解形式语言基础及其文法运算; 2、 熟悉语法分析原理及4种常用的语法分析方法; 其中: 四种算法为 (1)设计算术表达式的递归下降子程序分析算法 (2)设计算术表达式的LL(1) 分析算法 (3)设计算术表达式的简单优先分析算法 (4)设计算术表达式的SLR(1) 分析算法 3、选择上述一种方法并设计一个表达式的语法分析器。 (本实验设计的是递归下降的表达式语法分析器)
资源详情
资源评论
资源推荐

编译原理实验报告
——表达式语法分析

表达式语法分析实验报告
一、实验题目
设计一个简单的表达式语法分析器
(采用递归下降方法设计实现)
二、实验目的
1、 了解形式语言基础及其文法运算;
2、 熟悉语法分析原理及 4 种常用的语法分析方法;
其中: 四种算法为
(1)设计算术表达式的递归下降子程序分析算法
(2)设计算术表达式的 LL(1) 分析算法
(3)设计算术表达式的简单优先分析算法
(4)设计算术表达式的 SLR(1) 分析算法
3、选择上述一种方法并设计一个表达式的语法分析器。
(本实验设计的是递归下降的表达式语法分析器)
三、实验内容
1.设计递归下降语法分析器算法;
2.编写代码并上机调试运行通过;
3、写出试验体会及心得。

四、实验要求
1、 给出算术表达式文法
2、 进行适当的文法变换
3、 选择一种语法分析的方法,并说明其原理
4、 根据原理给出相应的算法设计,说明主要的数据结构并画出算法流
程图
5、 编写代码并上机调试运行通过
6、 写出程序运行结果
7、 写出相应的文档以及代码注释
8、输入——表达式;
输出——表达式语法是否正确。
五、递归下降的表达式语法分析器设计概要
1.算术表达式文法
G(E): E E +T | T
T T*
F | F
F i | (E)
2.文法变换:
G’(E): E->TE'
E'->+TE'|ε
T->FT'
T'->*FT'|ε
F->(E)|I

3. 递归下降子程序框图:

六、实验设计源程序
#include <iostream.h>
char inputstream[50]; //
存储输入句子
int temp=0; //
数组下标
int right; //
判断输出信息
void e();
void e1();
void t();
void t1();
void f();
void main()
{
right=1;
cout<<"
请输入您要分析的字符串以
#
结束
(^
为空字符
)
:
"<<endl;
cin>>inputstream;
e();
if((inputstream[temp]=='#')&&right)
cout<<"
分析成功
"<<endl;
else
cout<<"
分析失败
"<<endl;
}
void e()
{
cout<<"E->TE'"<<endl;
t();
e1();
剩余25页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0