计算机编译原理AK.pdfVIP

  • 11
  • 0
  • 约 9页
  • 2016-02-26 发布于江西
  • 举报
计算机编译原理Aamp;K.pdf

1.考察文法G[S],其产生式为: S→IS|a IS→if(E)S|if(E)SelseS E→0|1 1)试证文法G[S]是二义性文法。 2 ) 试 给 出 消 除 二 义 性 规 则 , 根 据 此 规 则 改 造 文 法 G[S] 为 G1[S] , 使 L(G[S])=L(G1[S]) ,但 G1[S]是非二义性文法。 分析: 1)本题比较简单,只需找出文法G[S]的一个二义性句子即可。 2 )本题实际上是要求解决所谓“悬挂else 问题”。按通常程序设计语言的规定,消除二义性 的规则是:一个else部分总是与没有else部分的最近的if语句相配对,即所谓的“最近原则”, 这可以通过增加非终结符、修改和增加产生式来解决。 解答: 1)考虑 G[S]的句子if(0) if(1) a else a,该句子有如下 2棵不同的推导树,如图 1.6 和图1.7所示,因此它是二义性句子,文法 G[S]是二义性文法。 S IS if ( E ) S else a

文档评论(0)

1亿VIP精品文档

相关文档