• ベストアンサー

LL(1)文法

S→cT T→cTd|ε で表せる文法はLL(1)文法なんでしょうか? 分かる方、ご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • pureh
  • ベストアンサー率69% (36/52)
回答No.1

結論から言えば、LL(1)文法です。 FIRST,FOLLOW,DIRECTORの定義、および、 これらを使ったLL(1)文法の定義は、既知のものとして話を進めます。 FIRST(S)={c} FIRST(T)={c,ε } FOLLOW(S)={$} FOLLOW(T)=FOLLOW(S)∪{d}={$,d} 1)DIRECTOR(S,cT)=FIRST(cT)-{ε}={c} 2)DIRECTOR(T,cTd)=FIRST(cTd)-{ε}={c} 3)DIRECTOR(T,ε )=FOLLOW(T)={$,d} 2∩3=φ なので、LL(1)文法である。  注 記号$は、文末(あるいは、入力末尾)を表す。 私が参考にした文献は、  岩波講座 ソフトウェア科学 vol.5 『プログラミング言語処理系』,佐々正孝 著 ですが、他にも良書はたくさん有ると思います。

kanoru
質問者

お礼

回答どうもありがとうございました。 お礼が遅れて済みませんでした。

関連するQ&A