文法を数学で表すための主要な概念
💡 文法を数学で表すための主要な概念
文法の構造を数学的に表現する際に中心となるのは、「形式文法 (Formal Grammar)」の概念です。形式文法は、特定の言語(文字列の集合)を生成するための一連の規則を、以下の4つの要素で定義します。
1. 終端記号の集合 (
: Terminal Symbols)
-
言語を構成する**「最終的な文字」や「単語」**の集合です。
-
自然言語では個々の単語(例:$\{私, は, りんご, を, 食べる\}$)、プログラミング言語ではキーワードや演算子(例:$\{\text{if}, \text{else}, +, *\}$)などが該当します。
2. 非終端記号の集合 (
: Non-Terminal Symbols)
-
文法構造を表す**「抽象的な記号」**です。文法の構成要素や、文の途中段階を示します。
-
例:$\{\text{文}, \text{名詞句}, \text{動詞句}\}$
3. 開始記号 (
: Start Symbol)
-
非終端記号の一つで、文法の生成プロセスを開始する記号です(例:
$$S = \text{文}$$)。
4. 生成規則の集合 (
: Production Rules)
-
最も重要な要素で、「左辺 $\rightarrow$ 右辺」の形で示され、非終端記号を別の記号の列に置き換える規則です。
具体例:簡単な文の文法
この規則を使うと、「文」から「私 を食べる」という正しい文が生成(導出)できます。
🌐 形式言語理論とチョムスキー階層
言語学者ノーム・チョムスキーは、生成規則の制約の厳しさによって形式文法を4つのタイプに分類しました。これを「チョムスキー階層」と呼びます。
| 階層 (Type) | 文法タイプ | 生成規則の制約 | 認識可能なオートマトン | 適用例 |
| タイプ 3 | 正規文法 | 左辺は非終端記号1個、右辺は終端記号1個と非終端記号1個以下 | 有限オートマトン | 正規表現、単純な状態遷移 |
| タイプ 2 | 文脈自由文法 | 左辺は非終端記号1個のみ(右辺の文脈を考慮しない) | プッシュダウン・オートマトン | 多くのプログラミング言語の構文(代入文、関数呼び出しなど) |
| タイプ 1 | 文脈依存文法 | 左辺の非終端記号が置き換えられる際、その周囲の記号(文脈)も考慮される | 線形拘束オートマトン | 自然言語の一部 |
| タイプ 0 | 制限なし文法 | 最も一般的な形式 | チューリング機械 | 全ての計算可能な問題 |
このように、文法の構造は数学(集合論、論理学)を基盤とした形式体系によって明確に定義され、その複雑さに応じて**オートマトン(抽象的な計算モデル)**と一対一に対応づけられています。これは、コンピュータがプログラミング言語の構文を解析したり(コンパイラ)、自然言語処理を行ったりするための理論的基礎となっています。
スペイン語で人生を変えよう
Think different