私は、文法階層だけでなく、一般的な形式言語(文字列のセット)の記述を扱う数学理論を探しています。
私は、文法階層だけでなく、一般的な形式言語(文字列のセット)の記述を扱う数学理論を探しています。
回答:
たくさんの可能性があります。他の人はすでに豊富な選択を提供するオートマトンに言及しています。次のフレームワークも検討してください。
一部の言語は、(co)帰納的定義によって直接定義できます。たとえば、の最小不動点
はで記述された言語と同じ言語であり、最大の固定点は(ba \ mid A)^ \オメガ。このような定義は、計算または推論規則の形式でも記述できます。\ qquad \ begin {align *} \ phantom {a} \\ \ frac {} {\ varepsilon}、\ quad \ frac {w} {aw} 、\ quad \ frac {aw} {baw} \\ \ phantom {a} \ end {align *}
(B|)*(B|)ω
単語は、論理式のモデルとして使用できる単語構造を定義します。基本的に、すべての単語はその位置のドメインを定義します、述語なので、 for、A述語つまりからに制限と述語場合にのみ真であります2番目のパラメーターは、拳の直接の後継者です。
たとえば、場合、P:D → { 0 、1 } P(I )⟺ wはiは = A 、A ∈ Σ < < N D W SUC :D W × D W → { 0 、1 } W = A B B B
(ba∣a)∗ω(ba∣a)ω
実際、この一次式は、---それを満たすすべての単語構造のセットを介して---と同じ言語を定義します。対応する言語は、LTL式
古典的な言語クラスと特定のロジックとのいくつかの同等性が知られています。たとえば、FOはスターフリー言語、弱いMSOに対応します
通常の言語へ、MSOから omega-通常言語へ。参考資料についてはこちらをご覧ください。
古典的なクラスに直交するものはパターン言語です。終端アルファベットおよび可変アルファベット想定します。文字列はパターンと呼ばれます。してみましょうの置換のセット。我々は、パターンの言語定義としてはパターンで動作するように拡張されている
ことに注意してください。終端記号は変更されません。
例として、考えてみましょうX = { X 1、X 2、... } のp ∈ (Σ ∪ X )+ H = { σ | σ :X → Σ * } P
。
置換による変数の削除が許可されていることに注意してください。パターン言語のクラスの一部のプロパティは、削除置換と非削除置換で大きく異なります。パターン言語は、ゴールドスタイルの学習に特に関心があります。
オートマトン理論をご覧ください。それについて多くの資料があります。
たとえば、ラベル付きエッジを持つ非決定性有限オートマトンで通常の言語を定義できます。オートマトンが文字でラベル付けされた遷移をたどり、最終状態で停止する場合、文字列は言語に属します。
また、コンテキストフリー文法はプッシュダウンオートマトンによって認識される場合があります。
言語を定義するもう1つの方法は、チューリングマシンを使用することです。
チョムスキー階層形式言語の4種類がある(それらのそれぞれは、それの後のもののサブセットです):
通常の正式言語はによって説明することができます。
1.、2.、3は同等であり、そのうちの1つから他を構築できます。
文脈自由形式言語をによって説明することができます。
また、1と2.は同等です。
コンテキスト依存の正式言語はによって説明することができます。
帰納的可算正式言語はによって説明することができます。