编译原理第七章习题

一、问答题

问答第1题

  已知文法
  A→aAd|aAb|ε
  判断该文法是否是SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。


问答第2题
  若有定义二进制数的文法如下:
  S→L.L|L
  L→LB|B
  B→0|1
  (1) 试为该文法构造LR分析表,并说明属哪类LR分析表。
  (2) 给出输入串101.110的分析过程。


问答第3题
  文法G=({U,T,S},{a,b,c,d,e},P,S)
  其中P为:
  S→UTa|Tb
  T→S|Sc|d
  U→US|e
  (1) 判断G是LR(0),SLR(1),LALR(1)还是LR(1),说明理由。
  (2) 构造相应的分析表。


问答第4题
  证明文法:
  S→A$
  A→BaBb|DbDa
  B→ε
  D→ε
  是LR(1)但不是SLR(1)。(其中'$'相当于'#')


问答第5题

  给定文法:
  S→do S or S|do S|S;S|act
  (1) 构造识别该文法活前缀的DFA。
  (2) 该文法是LR(0)吗?是SLR(1)吗?说明理由。
  (3) 若对一些终结符的优先级以及算符的结合规则规定如下:
  a) or 优先性大于 do;
  b) ;服从左结合;
  c) ;优先性大于 do ;
  d) ;优先性大于 or ;
  请构造该文法的LR分析表,并说明LR(0)项目集中是否存在冲突和冲突如何解决的。