チョムスキー階層のソースを表示
←
チョムスキー階層
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''チョムスキー階層'''(チョムスキーかいそう、''Chomsky hierarchy'')は、[[形式言語]]を生成する[[形式文法]]の包含階層([[形式言語の階層]])で、[[句構造文法]](''phrase structure grammar'')の階層」などともいう。1956年に[[ノーム・チョムスキー]]が発表した。 == 形式文法 == {{main|形式文法}} 形式文法の構成要素は、[[終端記号]](''terminal symbol'')の[[有限集合]](形式言語の単語で使われる文字)、[[非終端記号]](''nonterminal symbol'')の有限集合、生成規則(''production rule'')の有限集合(各生成規則は右側と左側に記号列で構成される単語を含む)、開始記号(''start symbol'')から構成される。生成規則はある単語に適用され、規則の左側にある単語を右側にある記号列で置換する。導出は一連の規則適用過程である。このような文法で開始記号から始めて生成規則を適用していくことで、終端記号のみから構成される単語を生成する。そのような単語全体の集合が形式言語である。 非終端記号は大文字、終端記号は小文字で表すことが多く、開始記号は <math>S</math> で示される。例えば、終端記号 <math>\{a, b\}</math> と非終端記号 <math>\{S, A, B\}</math> から構成される文法の生成規則が以下のようなものであるとする。 *<math>S \rightarrow ABS</math> *<math>S \rightarrow \epsilon</math> (ここで <math>\epsilon</math> は空の文字列) *<math>BA \rightarrow AB</math> *<math>BS \rightarrow b</math> *<math>Bb \rightarrow bb</math> *<math>Ab \rightarrow ab</math> *<math>Aa \rightarrow aa</math> これにより開始記号 <math>S</math> から定義される全単語で構成される言語は <math>a^{n} b^{n}</math> である(<math>n</math> 個の <math>a</math> の後に <math>n</math> 個の <math>b</math> が続く形式)。同様の言語をもっと単純な文法で定義した例を以下に示す。終端記号 <math>\{p, q\}</math>、非終端記号 <math>\{S\}</math>、開始記号 <math>S</math> で生成規則は以下のようになる。 {{Indent|<math>S \rightarrow pSq</math><br /> <math>S \rightarrow \epsilon</math>}} == 階層 == チョムスキー階層は以下のレベルから構成される。より一般的には[[形式言語の階層]]の記事を参照のこと。 * タイプ-0 文法({{ill|制限のない文法|en|Unrestricted grammar}})は全ての形式文法を包含する。この文法は[[チューリングマシン]]が認識できる全言語を生成できる。その言語群は[[帰納的可算言語]](''recursively enumerable language'')として知られている。これはチューリングマシンが必ず停止して判定可能な[[帰納言語]](''recursive language'')とは異なる。 * タイプ-1 文法([[文脈依存文法]])は[[文脈依存言語]]を生成する。この文法は <math>\alpha A\beta \rightarrow \alpha\gamma\beta</math> という形式の生成規則を持ち、<math>A</math> は非終端記号、<math>\alpha</math> と <math>\beta</math> と <math>\gamma</math> は終端記号と非終端記号から構成される文字列である。<math>\alpha</math> と <math>\beta</math> は空の文字列の場合もあるが、<math>\gamma</math> は空でない文字列でなければならない。<math>S</math> が生成規則の右側に現れない場合、<math>S \rightarrow \epsilon</math> という規則が存在しても良い。この文法によって記述される言語は[[線形拘束オートマトン]]で認識できる。 * タイプ-2 文法([[文脈自由文法]])は[[文脈自由言語]]を生成する。この文法は <math>A \rightarrow \gamma</math> という形式の生成規則を持ち、<math>A</math> は非終端記号、<math>\gamma</math> は終端記号と非終端記号から構成される文字列である。この文法で生成される言語群は非決定性[[プッシュダウン・オートマトン]]が認識できる言語である。多くの[[プログラミング言語]]の文法は、ほぼ<ref>たとえばC言語の場合の1例としては、typedefが現れた後は同じ綴りが単なる識別子から型名に変化するため、厳密には文脈自由文法で完全には扱えない。</ref>[[文脈自由文法]]である。 * タイプ-3 文法([[正規文法]])は[[正規言語]]を生成する。この文法の生成規則は左側には必ずひとつの非終端記号があり、右側には必ずひとつの終端記号とひとつかゼロ個の非終端記号がある(順番はひとつの文法内では決められている。つまり必ず「終端・非終端」か、必ず「非終端・終端」)。<math>S</math> が生成規則の右側に現れない場合、<math>S \rightarrow \epsilon</math> という規則が存在しても良い。この文法で生成される言語群は[[有限オートマトン]]で判定可能である。さらにこのタイプの形式言語は[[正規表現]]として使用されている。正規言語は検索パターンの定義やプログラミング言語の字句構造に一般的に使われている。 帰納言語に対応する文法がこの階層のメンバーではないことに注意されたい。 正規言語は全て文脈自由言語に含まれ、文脈自由言語は全て文脈依存言語に含まれ、文脈依存言語は全て帰納言語に含まれ、帰納言語は全て帰納的可算言語に含まれる。これは真の包含関係である(つまり、各タイプは上位タイプの真[[部分集合]]である)。したがって帰納言語ではない帰納的可算言語があり、文脈依存言語ではない帰納言語があり、文脈自由言語ではない文脈依存言語があり、正規言語ではない文脈自由言語がある。 以下の表はチョムスキーの四種類の文法をまとめたものであり、各クラスの生成する言語、それを認識するオートマトン、生成規則の制限を記している。 {| border="1" style="margin:auto;" !句構造文法階層 !文法 !言語 !オートマトン !生成規則 |- !タイプ-0 | {{sdash}} |[[帰納的可算言語|帰納的可算]] |[[チューリングマシン]] |制限なし |- !タイプ-1 |[[文脈依存文法|文脈依存]] |[[文脈依存言語|文脈依存]] |[[線形拘束オートマトン]] |<math>\alpha A\beta \rightarrow \alpha\gamma\beta</math> |- !タイプ-2 |[[文脈自由文法|文脈自由]] |[[文脈自由言語|文脈自由]] |[[プッシュダウン・オートマトン]] |<math>A \rightarrow \gamma</math> |- !タイプ-3 |[[正規文法|正規]] |[[正規言語|正規]] |[[有限オートマトン]] |<math>A \rightarrow a</math> および <br /> <math>A \rightarrow aB</math> または<br /> <math>A \rightarrow Ba</math> |} == 参考文献 == * {{cite journal2 | last = Chomsky | first = Noam | date = 1956 | title = Three models for the description of language | journal = IRE Transactions on Information Theory | issue = 2 | pages = 113–124 | url = https://chomsky.info/wp-content/uploads/195609-.pdf | archive-url = https://web.archive.org/web/20240324052655/https://chomsky.info/wp-content/uploads/195609-.pdf | archive-date = 2024-03-24 | url-status=live}} * {{cite journal2 | last = Chomsky | first = Noam | date = 1959 | title = On certain formal properties of grammars | journal = Information and Control | issue = 2 | pages = 137–167}} * {{cite book2 | last1 = Chomsky | first1 = Noam | last2 = Schützenberger | first2 = Marcel P. | editor = Braffort, P.; Hirschberg, D. | others = | title = Computer Programming and Formal Languages | date = 1963 | publisher = North Holland | location = Amsterdam | pages = 118–161 | chapter = The algebraic theory of context free languages}} == 脚注 == <references/> == 外部リンク == * [http://www.chomsky.info/ CHOMSKY.INFO] * [http://www.staff.ncl.ac.uk/hermann.moisl/ell236/lecture5.htm SEL292: COMPUTATIONAL LINGUISTICS] {{Normdaten}} {{デフォルトソート:ちよむすきかいそう}} [[Category:生成文法]] [[Category:形式言語]] [[Category:数学に関する記事]] [[Category:ノーム・チョムスキー]]
このページで使用されているテンプレート:
テンプレート:Cite book2
(
ソースを閲覧
)
テンプレート:Cite journal2
(
ソースを閲覧
)
テンプレート:Ill
(
ソースを閲覧
)
テンプレート:Indent
(
ソースを閲覧
)
テンプレート:Main
(
ソースを閲覧
)
テンプレート:Normdaten
(
ソースを閲覧
)
テンプレート:Sdash
(
ソースを閲覧
)
チョムスキー階層
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報