1. 文法G=({A,B,S},{a,b,c},P,S), 其中P 为: S→Ac|aB A→ab B→bc 写出L(G[S])的全部元素。 2. 文法G[S]为: S→Ac|aB A→ab B→bc 该文法是否为二义的?为什么? 3. 考虑下面上下文无关文法: S→SS*|SS+|a (1)表明通过此文法如何生成串aa+a*,并为该串构造语法树。 (2)G[S]的语言是什么? 4. 给出生成下述语言的二型文法: (1) {anbn | n >=0 } (2) { ambn | m≥n ≥0 } (3) {uawb | u,w ∈{a,b}*∧|u|=|w| } (4) { anbm | n≥2m ≥0 } (5) { anbm | n ≥ 0, m ≥ 0,3n≥m≥2n } (6) {wwR|w∈{a,b}*,wR 表示w的逆} (7) {uvwvR|u,v,w∈{a,b}+=1 } 5. 给出生成下述语言的三型文法: (1) {an | n >=0 } (2) { anbm | n,m>=1 } (3) {anbmck | n,m,k>=0 }
A.L(G[S])={ab,bc}
B.L(G[S])={abc}
C.L(G[S])={abc,abc}
D.L(G[S])={ac,abc}
考虑文法S AS|b
A SA|a
(1)构造文法的LR(0)项目集规范族及相应的DFA。
(2)如果把每一个LR(0)项目看成一个状态,并从每一个形如Ba:Xb的状态出发画一条标记为X的箭弧刀状态Ba.Xb,而且从每一个形如Ba.Ab的状态出发画标记为的箭弧到所有形如A●g的状态。这样就得到了一个NFA。说明这个NFA与(a)中的DFA是等价的。
(3)构造文法的SLR分析表。
(4)对于输入串bab,给出SLR分析器所作出的动作。
(5)构造文法的LR(1)分析表和LALR分析表。