形式言語理論において、 文脈自由言語( CFL ) は、チョムスキー型 2 言語とも呼ばれ、文脈自由文法( CFG ) によって生成される言語です。
文脈自由言語はプログラミング言語において多くの用途があり、特にほとんどの算術式は文脈自由文法によって生成されます。
背景
文脈自由文法
異なる文脈自由文法から、同じ文脈自由言語を生成できます。言語を記述する複数の文法を比較することで、言語の固有の特性と特定の文法の外部特性を区別できます。
オートマタ
すべての文脈自由言語の集合は、プッシュダウンオートマトンが受け入れる言語の集合と同一であり、これにより、これらの言語は構文解析可能になります。さらに、与えられた CFG に対して、文法 (および対応する言語) のプッシュダウンオートマトンを直接生成する方法がありますが、逆の方法 (オートマトンが与えられた場合に文法を生成する) はそれほど直接的ではありません。
例
文脈自由言語の例としては、空でない偶数長の文字列すべてからなる言語である が挙げられ、その前半全体がaで、後半全体がbである。Lは文法 によって生成される。この言語は正規のではない。これはプッシュダウンオートマトンによって受け入れられ、 は次のように定義される: [注 1]
曖昧でない CFL はすべての CFL の適切な部分集合です。本質的に曖昧なCFL も存在します。本質的に曖昧な CFL の例としては、と の和集合が挙げられます。2 つの文脈自由言語の和集合は常に文脈自由であるため、この集合は文脈自由です。しかし、これら 2 つの言語の共通部分である (文脈自由でない) 部分集合内の文字列を曖昧でない方法で解析する方法はありません。[1]
ダイク言語
適切に対応したすべての括弧の言語は文法によって生成されます。
プロパティ
文脈に依存しない解析
言語の文脈自由性により、プッシュダウンオートマトンによる解析が簡単になります。
所属問題のインスタンスの判定、つまり文字列 が与えられたときに、が与えられた文法によって生成された言語 であるかどうかを判定することは、認識とも呼ばれます。チョムスキー標準形文法の文脈自由認識は、 Leslie G. Valiantによってブール行列乗算に還元可能であることが示され、したがってその複雑性の上限O ( n 2.3728596 ) を継承します。[2] [注 2] 逆に、Lillian Lee は、O ( n 3−ε ) のブール行列乗算がO ( n 3−3ε ) の CFG 構文解析 に還元可能であることを示しており、後者のある種の下限を確立しています。[3]
文脈自由言語を実際に使用するには、文法が特定の文字列に関連付ける構造を示す導出ツリーを生成することも必要です。このツリーを生成するプロセスは、解析と呼ばれます。既知のパーサーには、解析される文字列のサイズの 3 乗の時間計算量があります。
正式には、すべての文脈自由言語の集合は、プッシュダウンオートマトン (PDA) によって受け入れられる言語の集合と同一です。文脈自由言語のパーサー アルゴリズムには、CYK アルゴリズムやEarley のアルゴリズムなどがあります。
文脈自由言語の特別なサブクラスとして決定性文脈自由言語があり、これは決定性プッシュダウンオートマトンによって受け入れられ、 LR(k)パーサによって解析できる言語の集合として定義されます。[4]
文法とパーサーの代替アプローチとして、 式文法の解析も参照してください。
閉鎖特性
文脈自由言語のクラスは、次の操作に対して閉じています。つまり、LとP が文脈自由言語である場合、次の言語も文脈自由言語です。
- LとPの結合 [ 5 ]
- Lの反転[6]
- LとPの連結[5 ]
- Lのクリーネ星 [ 5]
- Lの準同型写像[7]
- 逆準同型によるLの像[8]
- L(言語)の循環シフト[9]
- Lの接頭辞閉包( Lの文字列のすべての接頭辞の集合)[10]
- Lを正規言語Rで割った商 L / R [ 11]
交差、補集合、差集合による非閉包
文脈自由言語は、共通部分について閉じていない。これは、両方とも文脈自由である言語とをとればわかる。 [注 3]それらの共通部分は であり、これは文脈自由言語 のポンピング補題によって非文脈自由であることが示される。結果として、文脈自由言語は補集合について閉じることができない。なぜなら、任意の言語AとBについて、それらの共通部分は和集合と補集合で表現できるからである: 。特に、文脈自由言語は差集合について閉じることができない。なぜなら、補集合は差集合で表現できるからである: 。[12]
しかし、Lが文脈自由言語でDが正規言語である場合、それらの共通部分と相違部分は両方とも文脈自由言語である。[13]
決定可能性
形式言語理論では、正規言語に関する質問は通常は決定可能ですが、文脈自由言語に関する質問は決定できないことがよくあります。そのような言語が有限であるかどうかは決定可能ですが、すべての可能な文字列が含まれているかどうか、正規であるかどうか、曖昧さがないかどうか、または異なる文法を持つ言語と同等であるかどうかは決定できません。
次の問題は、任意に与えられた文脈自由文法A と B では決定不可能です。
- 同値性: ですか? [14]
- 分離性: は ? [15]しかし、文脈自由言語と正規言語の交差は文脈自由である。[16] [17]したがって、 Bが正規文法である問題の変形は決定可能である(下記の「空」を参照)。
- 包含: ですか ? [18]繰り返しますが、 Bが正規文法である場合の問題の変形は決定可能ですが[引用が必要]、Aが正規である場合の問題の変形は一般に決定できません。[19]
- 普遍性:?[20]
- 規則性:正規言語か?[21]
- 曖昧さ:すべての文法は曖昧なのか?[22]
任意の文脈自由言語に対して、 以下の問題が決定可能です。
- 空: 文脈自由文法Aが与えられたとき、空であるか ?[23]
- 有限性:文脈自由文法Aが与えられたとき、それは有限であるか?[24]
- メンバーシップ: 文脈自由文法Gと単語が与えられたとき、 となるでしょうか ? メンバーシップ問題に対する効率的な多項式時間アルゴリズムは、CYK アルゴリズムとEarley のアルゴリズムです。
ホップクロフト、モトワニ、ウルマン(2003)[25]によれば、文脈自由言語の基本的な閉包性と(非)決定可能性の多くは、1961年のバー・ヒレル、パールズ、シャミール の論文[26]で示された。
文脈に依存しない言語
この集合は文脈依存言語であるが、この言語を生成する文脈自由文法は存在しない。[27]そのため、文脈自由ではない文脈依存言語が存在する。与えられた言語が文脈自由でないことを証明するには、文脈自由言語に対するポンピング補題[26]や、オグデンの補題やパリクの定理など他のいくつかの方法を使うことができる。[28]
注記
- ^ の議論と結果の意味:
- ^ Valiantの論文では、O ( n 2.81 ) が当時の最もよく知られた上限でした。それ以降の上限の改善については、行列乗算#計算複雑性を参照してください。
- ^言語 Aの文脈自由文法は、 S を開始記号として次の生成規則で与えられます: S → Sc | aTb | ε ; T → aTb | ε 。Bの文法も同様です。
参考文献
- ^ Hopcroft & Ullman 1979、p. 100、定理4.7。
- ^ Valiant, Leslie G. (1975 年 4 月). 「立方時間未満での一般的なコンテキストフリー認識」(PDF) . Journal of Computer and System Sciences . 10 (2): 308–315. doi : 10.1016/s0022-0000(75)80046-8 .
- ^ Lee, Lillian (2002 年 1 月). 「高速な文脈自由文法解析には高速なブール行列乗算が必要」(PDF) . J ACM . 49 (1): 1–15. arXiv : cs/0112018 . doi :10.1145/505241.505242. S2CID 1243491. 2003 年 4 月 27 日のオリジナルから アーカイブ(PDF) 。
- ^ Knuth, DE (1965年7月). 「左から右への言語の翻訳について」.情報と制御. 8 (6): 607–639. doi :10.1016/S0019-9958(65)90426-2.
- ^ abc Hopcroft & Ullman 1979、p. 131、定理6.1の系。
- ^ ホップクロフト&ウルマン 1979、p.142、演習6.4d。
- ^ Hopcroft & Ullman 1979、p. 131-132、定理6.2の系。
- ^ Hopcroft & Ullman 1979、p. 132、定理6.3。
- ^ Hopcroft & Ullman 1979、p. 142-144、演習6.4c。
- ^ Hopcroft & Ullman 1979、p.142、演習6.4b。
- ^ Hopcroft & Ullman 1979、p. 142、演習6.4a。
- ^ Stephen Scheinberg (1960). 「文脈自由言語のブール特性に関する注記」(PDF) . Information and Control . 3 (4): 372–375. doi : 10.1016/s0019-9958(60)90965-7 . 2018-11-26にオリジナルからアーカイブ(PDF)されました。
- ^ Beigel, Richard; Gasarch, William. 「L = L1 ∩ L2 で、L1 が CFL で L2 が正規の場合、L は文脈自由であり、PDA を使用しないという証明」(PDF)。メリーランド大学コンピューターサイエンス学部。2014年 12 月 12 日のオリジナルからアーカイブ(PDF) 。2020年6 月 6 日閲覧。
- ^ ホップクロフト&ウルマン 1979、p.203、定理8.12(1)。
- ^ Hopcroft & Ullman 1979、p. 202、定理8.10。
- ^ サロマー (1973)、p. 59、定理6.7
- ^ Hopcroft & Ullman 1979、p. 135、定理6.5。
- ^ ホップクロフト&ウルマン 1979、p.203、定理8.12(2)。
- ^ ホップクロフト&ウルマン 1979、p.203、定理8.12(4)。
- ^ Hopcroft & Ullman 1979、p. 203、定理8.11。
- ^ ホップクロフト&ウルマン 1979、p.205、定理8.15。
- ^ ホップクロフト&ウルマン 1979、p.206、定理8.16。
- ^ ホップクロフト&ウルマン 1979、p.137、定理6.6(a)。
- ^ ホップクロフト&ウルマン 1979、p.137、定理6.6(b)。
- ^ John E. Hopcroft、Rajeev Motwani、Jeffrey D. Ullman (2003)。オートマトン理論、言語、計算入門。Addison Wesley。ここでは、Sect.7.6、p.304、およびSect.9.7、p.411を参照してください。
- ^ ab イェホシュア・バーヒレル;ミーシャ・アッシャー・パールズ。イーライ・シャミール (1961)。 「単純な句構造文法の形式的性質について」。Zeitschrift für Phonetik、Sprachwissenschaft und Kommunikationsforschung。14 (2): 143–172。
- ^ ホップクロフト&ウルマン 1979.
- ^ 「言語が文脈自由ではないことをどのように証明するか?」
引用文献
- ホップクロフト、ジョン E. ;ウルマン、ジェフリー D. (1979)。オートマトン理論、言語、計算入門(第 1 版)。Addison- Wesley。ISBN 0-201-02988-X。(印刷障害のある利用者も利用可能)
- Salomaa, Arto (1973)。形式言語。ACM モノグラフ シリーズ。
さらに読む
- Autebert, Jean-Michel; Berstel, Jean; Boasson, Luc (1997). 「文脈自由言語とプッシュダウンオートマトン」。G. Rozenberg、A. Salomaa (編)。形式言語ハンドブック(PDF)。第 1 巻。Springer-Verlag。pp. 111–174。2011-05-16にオリジナルからアーカイブ(PDF) 。
- ギンズバーグ、シーモア(1966)。文脈自由言語の数学的理論。ニューヨーク、ニューヨーク、アメリカ合衆国:マグロウヒル。
- Sipser, Michael (1997)。「2 : 文脈自由言語」。計算理論入門(第 1 版)。PWS Publishing。91 ~ 122 ページ。ISBN 978-0-534-94728-6。(印刷障害のある利用者も利用可能)
