当前位置:文档之家› 编译原理考试重点题

编译原理考试重点题

1、设正规式r= a(a|b)*,
将r转换为相应的正规文法。

令S为文法开始符,首先形成S →a(a|b)*,然后形成S →aA和A →(a|b)*,再变换成:
S→aA
A→ε
A→(a|b)A,
进而变换成正规文法形式:
S→aA
A→ε
A→aA
A→bA
2、令文法G[S]
S→cC,S→c,C→cC,C→dC,C→c,C→d,
将该文法转换为相应的正规式。

首先有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)*即为该文法所对应的正规式
令文法G[S]为: S->S+A|A
A->A*B|B
B->(S)|a|b
(1)分析说明a*a+b是该文法的一个句型;
(2)指出该句型的所有短语、直接短语和句柄。

(1)该字符串对应的语法树为:
所以a*a+b为该文法的句型。

(2)短语为:a,a,a*a,b,a*a+b;
直接短语为:a,a,b;
句柄为:最左边的a
令文法G[S]为: S->aCcDe
C->b|Cb
D->d
(1)分析说明aCbcde是它的一个句型;
(2)指出该句型的所有短语、直接短语和句柄。

(1)此句型对应语法树如下,故aCbcde为此文法的一个句型。

(2)短语为:aCbcde,Cb,d;
直接短语:Cb,d;
句柄: Cb。

构造正规式(a|b)*相应的最小化DFA。

1、首先构造对应的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 | T
T →T*F | F
F →(E) | I
(1)构造各非终结符的FIRSTVT和LASTVT集合;(2)构造文法的算符优先关系表。

各非终结符的FIRSTVT和LASTVT集合:
算符优先关系表:
设文法G[S]:S->aA
A->aBb|b
B->Cc|ε
C->aB|d
证明:G是LL(1)文法。

构造的LL(1)预测分析表为:
由预测分析表中无多重入口判定该文法是LL(1)文法。

设有文法G(S):S—>aBc|bAB
A—>aAb|b
B—>b|ε
(1)求各产生式的FIRST集,FOLLOW(A)和FOLLOW(B),以及各产生式的SELECT集。

(2)构造LL(1)分析表。

解:(1)FIRST(aBc)={a}
FIRST(bAB)={b}
FIRST(aAb)={a}
FIRST(A→b)={b}
FIRST(b) = {b}
FIRST(ε)={ε}
FOLLOW(A)={b, #}
FOLLOW(B)={c, #}
SELECT(S→aBc)={a}
SELECT(S→bAB) ={b}
SELECT(A→aAb)={a}
SELECT(A→b)={b}
SELECT(B→b)={b}
SELECT(B→)={c, #}
(2)所得的LL(1)分析表如下所示:。

相关主题