没有合适的资源?快使用搜索试试~ 我知道了~
首页编译原理-递归子程序 c++源码
编译原理-递归子程序 c++源码

编译原理-递归子程序 c++源码 编译原理-递归子程序 c++源码 编译原理-递归子程序 c++源码
资源详情
资源评论
资源推荐

一、实验目的
通过本实验,掌握将非 LL(1)文法改写为 LL(1)文法的方法;了解递归下降预测分
析的原理和过程以及可能存在的回溯问题。
二、实验内容及要求
递归下降分析法是确定的自上而下的分析法,这种分析法要求文法是 LL(1)文法。
它的基本思想是,对文法中的每一个非终结符编写一个函数,每个函数的功能是识别由该
非终结符所表示的语法成分。
1、给定文法:
S→(T)|^|a
T→T,S|S
由于该文法不是 LL(1)文法,所以需要将其改写为能用递归下降子程序分析的
LL(1)文法。对该文法可以通过消除左递归,并反复提取公共左因子对其进行等价变换,
将其改写为 LL(1)文法。经过改写后的文法为:
S→(T)|^|a
T1→ST1
T1→, ST1|ε
2、编写递归下降子程序,并判断某个句子是否符合该文法。
三、实验程序设计说明
1.实验方案设计
scaner( );函数:从文件中依次读字符
S( )函数:判断表达式是否满足 S→(T)|^|a。
T( )函数:判断表达式是否满足 T1→ST1
T1( )函数:判断表达式是否满足 →,ST1|ε
2.程序源代码
#include "stdio.h"
void scaner();
void error();
void S();
void T();
void T1();
char sym;
char str[50];
int j=0;
void S()
{
















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

评论1