设文法G(S): S→SiA|A A→A+B|B B→)A*|( 1)构造各非终结符的FIRSTVT和LASTVT集合; 2)构造算符优先关系表。
1)文法中添加产生式 S’→#S# S→SiA|A A→A+B|B B→)A*|( 在计算FIRSTVT和LASTVT集合 [br][/br] FIRSTVT LASTVT S’ {#} {#} S {i,+,),(} {i,+,*,(} A {+,),(} {+,*,(} B {),(} {*,(} 2)构造算符优先关系表 求=关系:#=#,)=* 求⋖关系:#⋖FIRSTVT(S)={i,+,),(} i⋖FIRSTVT(A)={+,),(} +⋖FIRSTVT(B)={),(} )⋖FIRSTVT(A)={+,),(} 求⋗关系:LASTVT(S)={i,+,*,(}⋗# LASTVT(S)={i,+,*,(}⋗i LASTVT(A)={+,*,(}⋗+ LASTVT(A)={+,*,(}⋗* [br][/br] + * ( ) i # + ⋗ ⋗ ⋖ ⋖ ⋗ ⋗ * ⋗ ⋗ [br][/br] [br][/br] ⋗ ⋗ ( ⋗ ⋗ [br][/br] [br][/br] ⋗ ⋗ ) ⋖ = ⋖ ⋖ [br][/br] [br][/br] i ⋖ [br][/br] ⋖ ⋖ ⋗ ⋗ # ⋖ [br][/br] ⋖ ⋖ ⋖ =
举一反三
- 给定文法G(S):S → (A) | aA → A + S | S非终结符S的 LASTVT集合是
- 对算符优先文法的终结符a,b,则a>b和b>a的优先关系可能同时成立。()
- 对于算符文法:[br][/br]S→A[]A→[A→aAA→B]B→a构造相应的优先矩阵;[br][/br]
- 【简答题】已知文法G[S]: S→S+aF|aF|+aF F→*aF|*a (1)消除左递归和回溯 (2)构造FIRST、FOLLOW、SELECT集合 (3)构造其LL(1)文法分析表,
- 给定文法G(S):S → ABcA → a | εB → b | ε非终结符S的 FIRST集合是
内容
- 0
给定文法G(S):S → ABcA → a | εB → b | ε非终结符A的 FOLLOW集合是
- 1
设有一文法G,如果文法G中没有形如A->...BC...的规则,其中A,B,C为非终结符,则称文法G为()。 A: 算法优先文法 B: LL(1)文法 C: LR(0)文法 D: 算符文法
- 2
下面文法不是算符优先文法: S∷=A[ ] | [A∷=aA | B]B∷=a
- 3
任何算符优先文法的句型中不会有两个相邻的非终结符号。()
- 4
设G为算符文法,a =…aUb…或α =…ab…是G的一个句型(a, b∈VT,UEVN),则算符优先关系aO<b,aO=b或aO>b至少有一个成立。