第二次作业答案
- 格式:doc
- 大小:460.50 KB
- 文档页数:3
【作业1】
已有文法: G[S]: S→SA, S→A, A→SB, A→B, A→(S), A→(), B→[S] (1)改写文法以满足递归下降分析的要求。
S→SAS→A
A→SBA→B
A→(S)A→( )
B→[S]B→[]
S→(S)Z21|()Z21|*S+Z31|*+Z31
A→(S)Z22|()Z22|*S+Z32|*+Z32
B→(S)Z23|()Z23|*S+Z33|*+Z33
Z11→ε|AZ11|BZ21
Z12→AZ12|BZ22Z13→AZ13|BZ23
Z21→Z11Z22→ε|Z12
Z23→Z13Z31→Z21
Z32→Z22Z33→ε|Z23
(2)画出非终结符号B的递归下降子程序。
【作业2】
已有文法:G[S]: S→aBc|bAB, A→aAb|b|Cc, B→b|ε,C→c
(1)求每个非终结符的FIRST集和FOLLOW集;
(2)构建LL(1)分析表;
(3)判断字符串baabbb是否为该文法的句子。
构造其LL(1)分析表,并分析符号串baabbb是否该文法的句子因为Follow(B)=FIRST(c) ∪FOLLOW(S)={C,#},
所以构造文法G[S]的LL(1)分析表如下表
分析符号串baabbb是否该文法的句子的过程
分析成功,符号串baabbb是该文法的句子.【作业3】
设已给文法G[S]: S→TaF|F, F→TbP|P, P→c|d, T→e|b. 构造此文法的算符优先矩阵;
+ *↑()i#
+ > << < > < >
* > >< < > < >
↑>>< < > < >
( < << < = <
) > >>> >
I > >>> >
# < << < <。