文脈依存言語

提供: miniwiki
移動先:案内検索

文脈依存言語(ぶんみゃくいそんげんご、Context-sensitive Language)は、文脈依存文法で定義される形式言語である。これはチョムスキー階層の四つの文法のひとつであるが、理論的にも実用的にも最も使われることが少ない文法でもある。

計算属性

計算性という観点では、文脈依存言語は線形拘束オートマトン(線形拘束された非決定性チューリングマシン)と等価である。これは、テープ長が kn セルに制限された非決定性チューリングマシンである。ここで n は入力の長さ、k はそのマシンに対応した定数である(つまりテープ長は入力の長さに比例する)。要するに、そのようなマシンで判定できる形式言語は文脈依存言語であり、文脈依存言語はそのようなマシンで判定できる。

このクラスの言語の集合は非決定性チューリングマシンの線形空間に受容されるのでNLIN-SPACENon-deterministic Linear Space)として知られている。同様に決定性チューリングマシンに受容される言語については LIN-SPACE と呼ぶ。LIN-SPACENLIN-SPACE の部分集合であることは明らかである。LIN-SPACE = NLIN-SPACE であるかどうかは不明であるが、一般に等価ではないと考えられている。

文脈自由ではない文脈依存言語の例として、L = { an : n素数 } がある。これを示す簡単な方法は線形拘束オートマトンを使うことである。

他に、L = { anbncn : n は正の整数 } 等がある。

文脈依存言語の属性

  • ふたつの文脈依存言語に対して和集合、積集合、連結を施した結果も文脈依存言語である。
  • 文脈依存言語の補集合は文脈依存言語である。
  • 文脈自由言語は文脈依存言語に含まれる。

関連項目