総括する
これは、「コンパイル原則チュートリアル(第4版)」に基づいて
います。Hu Yuanyi (他の教師を読んだことがあり、少し異なります。注意点の違いについて説明します)
4種類の文法の違い
タイプ0
唯一の制限:プロダクションの左側に非終端記号が必要です
タイプ1
タイプ0との唯一の違い:プロダクションの右側部分は空にできません(右側部分の長さが左側の長さより短くならないようにするため)
タイプ2
唯一の制限:プロダクションの左側には非終端記号が1つだけあります
タイプ3
タイプ2との唯一の違い:プロダクションの右側に最大1つの非終端記号があります
注意点
タイプ2について
αAδ→αβδ\ alpha A \ delta→\ alpha \ beta \ delta α A δ→α β δ
AAAはα\ alphaになければなりませんα、δ\デルタδのコンテキストでは、それはβ\ betaになります。βに置き換えられました。
次に、本は、プロダクションの右側の部分に少なくとも1つの非終端記号がなければならない、つまり、タイプ1の文法はS→εS→\ varepsilonは表示できないと述べていますS→εの形の生成物。
別のことわざがあります:
(1)S→εS→\ varepsilonがある場合S→ε、次にSSSはプロダクションの右側に現れてはなりません
(2)一般的にε\ varepsilonで置き換えることはできませんε開始記号を生成しない限り、ε\ varepsilonε
次に、このステートメントでは、生成の正しい部分で非終端記号を使用できません
[2つは基本的に同じです:∣α∣ | \ alpha || α | ≤\当量≤ | b | | \ beta || β |】
このステートメントに従うと、文法間の関係は次のようになります。
それ以外の場合、要約表に示されているように、タイプ2の文法は必ずしもタイプ1の文法に属しているとは限りません。タイプ2の文法にはS→εS→\ varepsilonがあるためです。S→e
どのような発言が先生の教えに基づいています。