1、1、设正规式 r= a(a|b)*,将 r 转换为相应的正规文法。令 S 为文法开始符,首先形成 S a(a|b)*,然后形成 S aA 和 A (a|b)*,再变换成:SaAAA(a|b)A,进而变换成正规文法形式:SaAAAaAAbA 2、令文法 GSScC,Sc,CcC,C dC,Cc,Cd,将该文法转换为相应的正规式。首先有 S=cC|c,C=(cC|dC)|(c|d)=(c|d)C|(c|d)=(c|d)*|(c|d)=(c|d)+ 进一步有S=c(c|d)+|c=c(c|d)*c(c|d)*即为该文法所对应的正规式令文法 GS为: S-S+A|AA-A*B|BB-(S)|a|b(1
2、)分析说明 a*a+b 是该文法的一个句型;(2)指出该句型的所有短语、直接短语和句柄。 (1)该字符串对应的语法树为:所以 a*a+b 为该文法的句型。(2)短语为:a,a,a*a,b,a*a+b;直接短语为:a,a,b;句柄为:最左边的 a令文法 GS为: S-aCcDe C-b|Cb D-d(1)分析说明 aCbcde 是它的一个句型;(2)指出该句型的所有短语、直接短语和句柄。 (1)此句型对应语法树如下,故 aCbcde 为 此文法的一个句型。 (2)短语为:aCbcde,Cb,d;直接短语:Cb,d;句柄: Cb。 构造正规式(a|b)*相应的最小化 DFA。 1、首先构造对应的
3、NFA:2、将 NFA 确定化:3、对其最小化: 设有非确定的有自限动机 NFA M=(A,B ,C,0,1,A,C),其中:(A, 0)=C,(A, 1)=A,B,(B,1)=C,(C,1)=C。请画出状态转换距阵和状态转换图。 状态转换距阵为:状态转换图为 :对表达式文法 G:E E+T | TT T*F | FF (E) | I(1)构造各非终结符的 FIRSTVT 和 LASTVT 集合;(2)构造文法的算符优先关系表。 各非终结符的 FIRSTVT 和 LASTVT 集合:算符优先关系表:设文法 GS:S-aAA-aBb|bB-Cc|C-aB|d证明:G 是 LL(1)文法。 构造的
4、 LL(1)预测分析表为:由预测分析表中无多重入口判定该文法是 LL(1)文法。设有文法 G(S):S aBc|bABAaAb|bBb|(1)求各产生式的 FIRST 集,FOLLOW(A)和 FOLLOW(B),以及各产生式的 SELECT 集。(2)构造 LL(1)分析表。 解:(1)FIRST(aBc)=aFIRST(bAB)=bFIRST(aAb)=aFIRST(A b)=bFIRST(b) = bFIRST()= FOLLOW(A)=b, #FOLLOW(B)=c, #SELECT(SaBc)=aSELECT(SbAB) =bSELECT(AaAb)=aSELECT(Ab)=bSELECT(Bb)=bSELECT(B)=c, #(2)所得的 LL(1)分析表如下所示: