チョムスキー階層
[Wikipedia|▼Menu]

チョムスキー階層(チョムスキーかいそう、Chomsky hierarchy)は、形式言語を生成する形式文法の包含階層(形式言語の階層)で、句構造文法(phrase structure grammar)の階層」などともいう。1956年にノーム・チョムスキーが発表した。
形式文法詳細は「形式文法」を参照

形式文法の構成要素は、終端記号(terminal symbol)の有限集合(形式言語の単語で使われる文字)、非終端記号(nonterminal symbol)の有限集合、生成規則(production rule)の有限集合(各生成規則は右側と左側に記号列で構成される単語を含む)、開始記号(start symbol)から構成される。生成規則はある単語に適用され、規則の左側にある単語を右側にある記号列で置換する。導出は一連の規則適用過程である。このような文法で開始記号から始めて生成規則を適用していくことで、終端記号のみから構成される単語を生成する。そのような単語全体の集合が形式言語である。

非終端記号は大文字、終端記号は小文字で表すことが多く、開始記号は S {\displaystyle S} で示される。例えば、終端記号 { a , b } {\displaystyle \{a,b\}} と非終端記号 { S , A , B } {\displaystyle \{S,A,B\}} から構成される文法の生成規則が以下のようなものであるとする。

S → A B S {\displaystyle S\rightarrow ABS}

S → ϵ {\displaystyle S\rightarrow \epsilon } (ここで ϵ {\displaystyle \epsilon } は空の文字列)

B A → A B {\displaystyle BA\rightarrow AB}

B S → b {\displaystyle BS\rightarrow b}

B b → b b {\displaystyle Bb\rightarrow bb}

A b → a b {\displaystyle Ab\rightarrow ab}

A a → a a {\displaystyle Aa\rightarrow aa}

これにより開始記号 S {\displaystyle S} から定義される全単語で構成される言語は a n b n {\displaystyle a^{n}b^{n}} である( n {\displaystyle n} 個の a {\displaystyle a} の後に n {\displaystyle n} 個の b {\displaystyle b} が続く形式)。同様の言語をもっと単純な文法で定義した例を以下に示す。終端記号 { p , q } {\displaystyle \{p,q\}} 、非終端記号 { S } {\displaystyle \{S\}} 、開始記号 S {\displaystyle S} で生成規則は以下のようになる。

S → p S q {\displaystyle S\rightarrow pSq}
S → ϵ {\displaystyle S\rightarrow \epsilon }
階層

チョムスキー階層は以下のレベルから構成される。より一般的には形式言語の階層の記事を参照のこと。

タイプ-0 文法(制限のない文法(英語版))は全ての形式文法を包含する。この文法はチューリングマシンが認識できる全言語を生成できる。その言語群は帰納的可算言語(recursively enumerable language)として知られている。これはチューリングマシンが必ず停止して判定可能な帰納言語(recursive language)とは異なる。

タイプ-1 文法(文脈依存文法)は文脈依存言語を生成する。この文法は α A β → α γ β {\displaystyle \alpha A\beta \rightarrow \alpha \gamma \beta } という形式の生成規則を持ち、 A {\displaystyle A} は非終端記号、 α {\displaystyle \alpha } と β {\displaystyle \beta } と γ {\displaystyle \gamma } は終端記号と非終端記号から構成される文字列である。 α {\displaystyle \alpha } と β {\displaystyle \beta } は空の文字列の場合もあるが、 γ {\displaystyle \gamma } は空でない文字列でなければならない。 S {\displaystyle S} が生成規則の右側に現れない場合、 S → ϵ {\displaystyle S\rightarrow \epsilon } という規則が存在しても良い。この文法によって記述される言語は線形拘束オートマトンで認識できる。

タイプ-2 文法(文脈自由文法)は文脈自由言語を生成する。この文法は A → γ {\displaystyle A\rightarrow \gamma } という形式の生成規則を持ち、 A {\displaystyle A} は非終端記号、 γ {\displaystyle \gamma } は終端記号と非終端記号から構成される文字列である。この文法で生成される言語群は非決定性プッシュダウン・オートマトンが認識できる言語である。多くのプログラミング言語の文法は、ほぼ[1]文脈自由文法である。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:13 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef