老师参与

请问 模拟题5讲第3道题

luislp83 发表于2018年03月25日
<p>已知文法G[S]:</p><p>S→eT|RT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; T→DR|ε&nbsp; R→dR|ε&nbsp;&nbsp;&nbsp; D→a|bd</p><p>求FIRST(S)=()。</p><p><br ></p><p>我分析了一下 &nbsp;结果是这个 &nbsp;怎么跟答案不一样呢 ? 请老师帮忙解答一下 &nbsp;谢谢 &nbsp;!</p><p>FIRST(D)={a,b}</p><p>FIRST(R)={d,ε}</p><p>FIRST(T)={ε,a,b}</p><p>FIRST(S)={ε,e,d}</p><p><br ></p><p><br ></p><p><br ></p><p><br ></p>
1 回复

    1楼

  • 陈鄞 发表于2018年03月26日
    6 | 0 | 举报
    <p>你好!</p><p><br ></p><p>&nbsp;&nbsp;&nbsp;&nbsp;前三个FIRST集FIRST(D)、FIRST(R)、FIRST(T)计算得都对。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;根据第1个产生式的第2个候选式,S由R和T连接而成。因为First(R)中包含空串ε,也就是说,R能推导出空串,因此,FIRST(T)中的元素a,b也应该放入FIRST(S)中,因此,FIRST(S)={ε,e,d,a,b}。</p>
    陈鄞 发表于2018年03月26日
    添加评论