2017-10-22 3 views
1

は、我々は、以下の(A)を求めるため、以下のルールで発表されました:フォローセットアルゴリズムの第3のルールの根拠は何ですか?コンパイラクラスの

α

  1. Aは開始記号である場合には、(A)
  2. に従うように '$' を追加します
  3. 場合 - > α B βは、FIRSTを追加(β) - {&イプシロン;}(B)
  4. 追従するAの場合 - > α B、又は(A - > α B βとβ * - >)、FOLLOW(A)をFOLLOW(B)に追加します。

また、フォロー(A)の非公式の定義が与えられました。 センテンス形式でAのすぐ後に続くことができる端末のセット。

3番目のルールは本当ですか?

私は第3のルールを適用する方法を理解していますが、なぜそうでなければならないのか混乱しています。誰かが、その使用を必要とする具体的な例を提供することができますか、または第3のルールがないと非公式の定義に失敗する例はありますか?

+0

私はこの質問をかもしれないと思いますここで話題にならないと、https://softwareengineering.stackexchange.com/ – Rob

+0

の@Robで、より多くの運が得られる他のサイトでは、[cross-posting frowned at](https://meta.stackexchange.com/tags/cross-posting/info) – gnat

+0

@gnatはいを指摘すると役立つことがよくあります。知っている。そして、それについて言及してください。 – Rob

答えて

2

は、本番ルール

→ α B β

があり、βは、空の文字列を導き出すことができることを知って想像してみてください。その場合、上記の生成ルールを使用して空の文字列にβを展開すると、Aの非終端記号に合法的に従うことができる文字もBの非終端記号に従うことができます。

例として、このシンプルな文法を見てみましょう:

S →アックス

→ CBC

C →&イプシロン。

ここでB → Y

、我々はBの後にXを置くこの導出を行うことができます。

S →アックス→ CBCx →のCBx

関連する問題