形式言語の概要
形式
言語は、すべての
文法や構文が明確に
定義されている人工的な
言語の一種です。自然
言語と異なり、形式
言語は用法の変化が非常に厳格であり、
曖昧さが排除されています。この特性ゆえに、形式
言語は
計算機科学や理論
言語学において重要な役割を果たしています。
形式
言語の理論においては、
言語はアルファベットの列の
集合、具体的には語(word)の
集合と
定義されます。このような
言語の
定義において、長さゼロの空単語も含まれます。たとえば、チューリングマシンの
言語は、単なる文字列で構成されており、文字列がどのようにプログラムされ、解釈されるかが重要です。
チューリングマシンと形式言語
チューリングマシンという
計算モデルは、形式
言語を扱う際に重要な役割を果たします。あるチューリングマシンが特定の
言語において、すべての語に対して受理する場合、その
言語は「チューリング認識可能」と呼ばれます。一方、すべての語に対して拒否する場合、その
言語は「チューリング判別可能」と称されます。このように、
言語の受理や拒否の状態に基づいて、形式
言語の特性が判断されます。
形式
言語の理論では、特定の演算が
定義されています。
- - 連結: 2つの言語の文字列を順に並べたものが新たな言語を形成します。
- - 積集合: 両方の言語に共通する文字列のみを集めた言語です。
- - 和集合: いずれかの言語に含まれるすべての文字列を含む言語です。
- - 補集合: 特定の言語に含まれないすべての文字列の集合です。
- - 商集合: 特定の条件を満たす文字列の集合を形成します。
- - クリーネスター: 特定の言語の文字列を任意回数繰り返したものです。
- - 反転: 文字列を反転させたものを含む新しい言語です。
- - シャッフル: 2つの言語から文字列を交互に並べた集合です。
形式
言語は、
形式文法と密接に関連しています。
文脈自由文法の例として、次のような文を生成するための規則が挙げられます。
```
名詞
句 ::= 名詞 | 形容詞 名詞 | 名詞
句 "を" 動詞 "ている" 名詞
句
動詞 ::= "見"
名詞 ::= "猿" | "飼育員"
形容詞 ::= "小さい"
```
この規則から
再帰的に名前の付いた要素を生成することが可能で、例えば「猿を見ている小さい猿」などの構文が生まれます。これは
形式文法の特性を
活用した
言語生成の一例です。
自然言語への応用
形式
言語は自然
言語分析にも応用されます。チョムスキーは、自然
言語を簡略化された形式
言語のモデルで捉えるというアプローチを提唱しました。具体的には、音素や
語幹を素
記号として扱い、自然
言語の構造をより深く理解する手法を模索しました。自然
言語の
文法規則は形式
言語のように明確に
定義されることは稀ですが、形式
言語の理論を用いることで自然
言語の特性を明らかにする試みは盛んです。
形式
言語は、
計算機科学や理論
言語学などにおいて不可欠な要素であり、その厳格性や明瞭性が様々な学問分野での応用を可能にしています。