资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
约移进”冲突,状态9存在“归约归约”冲突,因此该文法不是LR(0)文法。状态5:FOLLOW(B-3-baa0a1b3b所以此等价的DFA为:开始状态为0,终态集为3,状态集为0,1,3,EB,CB,C,D,yB,C,D,yB,C,EB,C,D构造一个DFA,它接xprTailVarid(id)ExprVarExprTail10#ExprTailVarT二、概念题1、设有文法: PP+Q|QQQ*R|RR(P)|i( 1 )证明 Q*R+Q+ 它的一个句型。(3 分)(2 )给出 Q*R+Q+Q的所有短语,直接短语和句柄。 (4 分)(3 )给出句子 + * 的最右推导。 (4 分)(4 )给出句子 + * 的最左推导。 (4 分)2、设有文法: EE+T|T T T*F|F F (E)|i( 1 )证明 E+T*F是它的一个句型。(3 分)答案:E E T E T *F(2 )给出 E+T*F的所有短语,直接短语和句柄。 (4 分)短语: E+T*F, T*F,直接短语: T*F句柄: T*F(3 )给出句子 + * 的最右推导。 (4 分)3、写出表达式 a+b*(c-d) 对应的逆波兰式和三元式序列。答案:逆波兰式: (abcd-*+)- 1 -hileecdoc:=c+1elsex:=x+5答案:假设初始为100,则四元式代码序列为1001约移进”冲突,状态9存在“归约归约”冲突,因此该文法不是LR(0)文法。状态5:FOLLOW(B。(12分)答案:(1)FIRST(Expr)=,(,idFIRST(ExprTail)=,21#ExprTail)22#ExprTail#ExprTail23#分析成功对下面的文三元式序列:OP ARG1 ARG2(1) - c d(2) * b (1)(3) + a (2)三、词法分析题给出下面语言的相应文法L1=anbnambm|n,m 0答案: SAB|A|B| A aAb|abB aBb|ab给出下面语言的相应文法L2=anbnci |n 1,i 0答案: S AB|BA a|aAB bBc|bc给出下面语言的相应文法L3= anbncm| m,n1 ,n 为奇数, m为偶数 。答案:文法 G(S):S ACAaaAbb/abCccCcc/cc四、词法分析题- 2 -b|(1)计算这个文法的每个非终结符的FIRST和FOLLOW。(8分)答案:FIRST(E)=xpr|VaridVarTailVarTail(Expr)|-4-(1)构造LL(1)分析表hileecdoc:=c+1elsex:=x+5答案:假设初始为100,则四元式代码序列为1001分)写出表达式a+b*(c-d)对应的逆波兰式和三元式序列。答案:逆波兰式:(abcd-*+)-1-1、构造下面正规式相应的 DFA(0|1) *|(11) *) *(要求:先将正规式转化为 NFA,再将 NFA确定化,最小化)2、构造下面正规式相应的 DFA1(0|1) *101答案:I I0 I1X A,B,CA,B,C B,C B,C,DB,C B,C B,C,DB,C,D B,C,E B,C,DB,C,E B,C B,C,D,yB,C,D,y B,C,E B,C,D3、构造一个 DFA,它接受 =a ,b上所有包含ab 的字符串。(要求:先将正规式转化为 NFA,再将 NFA确定化,最小化)答案: ( 一) 相应的正规式为(a|b)*ab(a|b)*( 二) 与此正规式对应的 NFA为状态转换矩阵为:- 3 -法G(S):SACAaaAbb/abCccCcc/cc四、词法分析题-2-构造下面正规式相应的的分析过程。-9-(1)SDbB(4)BaLR(2)Dd(5)BBba分析表(3)D(6LL(1)的但不是SLR(1)的。SAaAb|BbBaAB证明下面文法是SLR(1)但不是)VarTail5#Exprid(id)ExprTailExpr6#Exprid( 最小化: 0 ,1,2 3 ,4,50 , 2 ,1, 3 ,4,5b a a0a1b3b所以此等价的 DFA为:开始状态为 0 ,终态集为3 ,状态集为0,1,3 ,输入字母表是a,b 状态转换图如上。4、构造与正规式 b(a|b)*ba 等价的 DFA五、语法分析题1、对下面的文法 G:Expr - ExprExpr (Expr)|Var ExprTailExprTail - Expr| Varid VarTailVarTail (Expr) | - 4 -#,b,c,因此FOLLOW(FOLLOW(A)状态5和状态9的冲突均可用SLR(1)方法解决的分析过程。-9-(1)SDbB(4)BaLR(2)Dd(5)BBba分析表(3)D(6三元式序列:OPARG1ARG2(1)-cd(2)*b(1)(3)+a(2)三、词法分析题给出下面语,构造SLR(1)分析表如下:14该SLR(1)分析表无重定义,因此该文法是SLR(1)文法,不是L( 1)构造 LL(1) 分析表。( 12 分)答案:( 1)FIRST(Expr)=_ , ( , id FIRST(ExprTail)=_ , FIRST(Var)=idFIRST(VarTail)= ( , FOLLOW(Expr)=# , ) FOLLOW(ExprTail) =# , ) FOLLOW(Var) =_ , # , ) FOLLOW(VarTail) =_ , # , ) (2)给出对句子 id id(id) 的分析过程。(8 分)步骤 符号栈 输入串 所用产生式0 Expr id_ _id(id) 1 # ExprTail Var id_ _id(id) Expr Var ExprTail2 # ExprTail VarTail id id_ _id(id) Varid VarTail3 # ExprTail VarTail _ _id(id) 4 # ExprTail _ _id(id) VarTail 5 # Expr_ _ _id(id) ExprTail _ Expr6 # Expr _id(id) 7 # Expr_ _id(id) Expr _Expr8 # Expr id(id) - 5 -分)写出表达式a+b*(c-d)对应的逆波兰式和三元式序列。答案:逆波兰式:(abcd-*+)-1-hileecdoc:=c+1elsex:=x+5答案:假设初始为100,则四元式代码序列为100121#ExprTail)22#ExprTail#ExprTail23#分析成功对下面的文(,a,b,FIRST(E)=+,FIRST(T)=(,a,b,FIRST(T)9 # ExprTail Var id(id) Expr Var ExprTail10 # ExprTail VarTail id id(id) Varid VarTail11 # ExprTail VarTail (id) 12 # ExprTail )Expr( (id) VarTail (Expr)13 # ExprTail )Expr (id) 14 # ExprTail ) )Expr( (id) Expr (Expr)15 # ExprTail ) )Expr id) 16 # ExprTail ) ) ExprTail Var id) Exp Var ExprTail17 # ExprTail ) )ExprTail VarTail id id) Varid VarTail18 # ExprTail ) )ExprTail VarTail ) 19 # ExprTail ) )ExprTail ) VarTail 20 # ExprTail ) ) ) ExprTail 21 # ExprTail ) ) 22 # ExprTail # ExprTail 23 # # 分析成功2、对下面的文法 G:ETE- 6 -法G(S):SACAaaAbb/abCccCcc/cc四、词法分析题-2-构造下面正规式相应的C-D翻译成四元式15109写出下面语句经语法制导翻译后所生成的四元式代码序列。ifxythenwF|P(E)|a|bFIRST(+E)FIRST(
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号