2

私はCFGを使用していますが、特定の言語でルールを作成するたびに、CFGは嫌になります。それは1行になります:

S->tooooooo much stuff

チョムスキー標準形にすると正しい形になり、きれいになりますが、見た目をすっきりさせるためのアイデアはないかと思いました。

つまり、lang:

a^n b^m, where n >= m

私のCFG(グロス):

S -> Sa|Sab|Sba|aS|aSb|abS|bSa|baS|ε

誰かが私の悪い習慣を手伝ってくれますか?

4

1 に答える 1

1

この単純な言語を記述するために本当にCFGを使用する必要がありますか?aとbを数える方がはるかに簡単です。

しかし、これが単なる例であると仮定すると...

実際のパーサーのCFGは通常、ラインごとに1つのプロダクションに分割し、合理的な方法でグループ化します。

S -> a b S
   | b a S
   | a S
   | a S b
   | b S a
   | ε
于 2011-12-02T10:37:04.387 に答える