【ぶんみゃくじゆうぶんぽう】
文脈自由文法 とは?
💡 前後を気にせず「この形はこう書き換えてOK」のルールブック
📌 このページのポイント
文脈自由文法って何なの?プログラミングの文法とは違うの?
プログラミング言語の構文ルールを数学的に定義するための仕組みだよ。「この記号はこういう形に書き換えられる」というルールの集まりなんだ。
「文脈自由」ってどういう意味なの?
書き換えルールを適用するとき、その記号の前後(文脈)を気にしなくていいという意味だよ。A → B + C というルールがあれば、Aがどこに出てきても同じように書き換えられるんだ。
具体的にはどんなルールがあるの?
たとえば「式 → 式 + 項」「項 → 数字」みたいなルールだよ。これを繰り返し適用すると「3 + 5」のような式が正しい構文かどうか判定できるんだ。
文脈自由文法で表せないものもあるの?
あるよ。たとえば「変数を使う前に宣言されているか」のチェックは文脈に依存するから、文脈自由文法だけでは扱えないんだ。そういう部分は意味解析で別途チェックするよ。チョムスキー階層では正規文法より強力だけど、文脈依存文法よりは制限があるという位置づけだね。
まとめ:ざっくりこれだけ覚えればOK!
「文脈自由文法」って出てきたら「プログラミング言語の構文ルールを形式的に書き下すための仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Context-Free Grammar」 = 文脈に依存しない文法
💬 文脈(context)に関係なく(free)書き換え規則を適用できる文法、という意味だよ