欢迎来到天天文库
浏览记录
ID:30349151
大小:18.46 KB
页数:11页
时间:2018-12-29
《算符优先算法实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划算符优先算法实验报告 实验三算符优先分析算法的设计与实现 一、实验目的 根据算符优先分析法,对表达式进行语法分析,使其能够判断一个表达式是否正确。通 过算符优先分析方法的实现,加深对自下而上语法分析方法的理解。 二、实验要求 1、输入文法。可以是如下算术表达式的文法: E→E+T
2、E-T
3、T T→T*F
4、T/F
5、F F→
6、i 2、对给定表达式进行分析,输出表达式正确与否的判断。 程序输入/输出示例: 输入:1+2;
7、 输出:正确 输入:(1+2)/3+4-(5+6/7); 输出:正确 输入:((1-2)/3+4 输出:错误目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 输入:1+2-3+(*4/5) 输出:错误 三、实验步骤 1、参考数据结构 char*VN=0,*VT=0;//非终结符和终结符数组 charfirstvt[N][N],lastvt[N]
8、[N],table[N][N]; typedefstruct//符号对(P,a) { charVn; charVt; }VN_VT; typedefstruct//栈 { VN_VT*top; VN_VT*bollow; intsize; }stack; 2、根据文法求FIRSTVT集和LASTVT集 给定一个上下文无关文法,根据算法设计一个程序,求文法中每个非终结符的 FirstVT集和LastVT集。 算符描述如下:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确
9、保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 /*求FirstVT集的算法*/ PROCEDUREinsert(P,a); IFnotF[P,a]then begin F[P,a]=true;//(P,a)进栈 end; ProcedureFirstVT; Begin for对每个非终结符P和终结符ado F[P,a]=false for对每个形如P Insert(P,a) whilestack非空 begin 栈顶项出栈,记为(
10、Q,a) for对每条形如P→Q…的产生式do insert(P,a) end; end. 同理,可构造计算LASTVT的算法。 3、构造算符优先分析表目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 依据文法和求出的相应FirstVT和LastVT集生成算符优先分析表。 算法描述如下: for每个形如P->X1X2…Xn的产生式do fori
11、=1ton-1do begin ifXi和Xi+1都是终结符then Xi=Xi+1 ifiXi+1; end 4、构造总控程序 算法描述如下: stackS; k=1;//符号栈S的使用深度 S[k]=‘#’ REPEATa…或P→Qa…的产生式do 把下一个输入符号读进a中; IfS[k]?VTthenj=kelsej=k-1; WhileS[j]>ado Begin Repeat Q=S[j]; ifS[j-1]?VTthenj=j-1elsej=j-2目的-通过该培训员工可对保安行业有初步了解,并感受到安保
12、行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 untilS[j] #include #include chardata[20][20];//算符优先关系 chars[100];//模拟符号栈s charlable[20];//文法终结符集 charinput[100];//文法输入符号串 charstring[20][10];//用于输入串的分析 intk; chara; intj; cha
13、rq; intr;//文法规则个数 intr1;//转化后文法规则个数 charst[10][30];
此文档下载收益归作者所有