期末复习——简答题、分析题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简答题
1. 已知文法G(E) E→T|E +T T→F|T *F F→(E)|i
(1)判断符号串i+i*i 是否为文法G(S)的句子,如果是画出其分析树。 (2)给出G(E)的元语言符号集、文法符号集、终结符集、非终结符集 答案:
(1)是,分析树为 (答案不唯一)
(2)元语言符号集:→ |
文法符号集:E 、T 、F 、+、*、(、)、i 终结符集:+、*、(、)、i 非终结符集:E 、T 、F
2. 画出下列有限自动机的状态转换图和状态转换矩阵
M =({S ,A ,B ,C},{0,1},f ,S ,{C}),其转换函数为:
f(S ,0)=B f(B ,0)= S f(S ,1)=A f(B ,1)= C f(A ,0)=C f(C ,0)= A f(A ,1)=S
f(C ,1)= B
状态转换图
E E
+
T
T
*
F
T
F
i
F
i
i
3. 构造下列正则表达式的非确定的有限状态自动机。
aba(a|b)*a 4. 写出下列非确定的有限自动机对应的正规式
a b
答案:
(X|Y)*
(XY
*
Y|YX
*
X)
5.已知文法G(S)为:
S →AB
A →a
B | bS | c
B →AS | d
求非终结符的First和Follow集
First(S)={a,b,c}
First(A)={a,b,c}
First(B)={a,b,c,d}
Follow(S)={﹟,a,b,c,d}
Follow(A)={a,b,c,d}
Follow(B)={a,b,c,d,﹟}
6.写出表达式a=(a+b)/(a-b)-(a+b)*c的逆波兰式、三元式、间接三元式序列及四元序列。
逆波兰式:ab+ab-/
①②③①④⑤
7. 消除下列文法的直接左递归
E->E+T
T->T*F|F
F->(E)|id|F(id)
答案:
E->E’
E’->+TE’|ε
T->FT’
T’->*FT’|ε
F->(E)F’|idF’
F’->(id)F’|ε
9 . 计算所有非终结符的FIRSTVT
和LASTVT
分析题
有步骤的考试时按步骤给分,如果结果不对可以得步骤分1. 将下图所示的NFA化简为DFA
2.将下面程序划分成基本块并作出其程序控制流图(1) Read(A,B)
(2) F=1
(3) C=A*A
(4) D=B*B
(5) If C (6) E=A*A (7) F=F+1 (8) E=E+F (9) Write (E) (10)Halt (11)L1: E=B* (12)F=F+2 (13)E=E+F (14)Write (E) (15)If E>100 goto L2 (16)halt (17)L2:F=F-1 (18)goto L1 答案: 基本块为:(1)——(5) (6)——(10) (11)——(15) (16) (17)、(18) 控制流图 3. 设已构造出文法G(S): (1)S → BB (2)B → aB (3)B → b 采用LR 分析、分析句子aaabab 是否是该文法所描述的句子 分析成功,说明aaabab是该文法所描述的句子 4. 有文法G(S)为: S →iEtSS’∣a S’ →eS ∣ε E→b 构造其预测分析表 (1)求候选式的First集 对于S,有 FIRST(iEtSS’)={i} FIRST(a)={a} 对于S’,有 FIRST(eS)={e} FIRST(ε)={ε } 所以求FOLLOW(S’)={#} 对于E,有 FIRST(b)={b} 5. 已知文法G(E)为: E ->T E ’ E ’->+T E ’|ε T -> F T ’ T ’->*F T ’|ε F ->(E )|i 其预测分析表为: 分析i+i*i 是否为该文法的句子,写出分析过程 分析过程:见书P91 分析成功,所以i+i*i 是文法所描述的语言中的句子 F F T T T T T T T T E E E E E #)(*+i →(E) →i F ’→ε ’→ε ’→*FT ’ ’→ε ’ →FT ’ →FT ’ ’→ε ’→ε ’→+T E ’ E ’→TE ’ →TE ’ E 6. 将下列DFA,消去其无关状态 (2)标记非无关状态 第一步,标记1 第二步,由f(1,a)=5,f(1,b)=2,标记5和2 由f(5,a)=6,标记6 由f(2,b)=3,标记3 由f(6,b)=9,标记9 由f(3,a)=8,标记8 9未产生新标记 由f(8,a)=9,没有新标记 不再有未处理的标记状态,所以非无关状态为:1、2、3、5、6、8、9 (3)删除未标记的状态,未标记的状态有:4、7,删除状态4、7及相关的转移得