このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

形式言語理論とは何であって、何がありがたいのか

ソフトウェア技術者の観点から言えば、「ソフトウェアのための集合論」だな。

  1. 数学の集合は茫漠としていて掴みどころがない。
  2. 全体集合U(universe)を決めて、その部分集合だけを考えるのが良い。
  3. Uはデータの集合だが、アトムだけじゃなくて複合データも考えたい。
  4. 一番簡単な複合データは列だから、Uは列の全体としよう。
  5. A⊆U に対して、Aの列挙とか、Aに属するかどうかの判断をしたい。
  6. 列挙プログラムも判断プログラムも、比較的簡単に実装できるものがいい。

複合データの全体Uを、列だけじゃなくてツリーとかレコードとかグラフとかにしてもいい。それだけ難しくなるけど。

Uの部分集合Aが十分に簡単なときは、三位一体が成立する。

  1. Aの記述(description)/表現(expression)
  2. Aの生成器
  3. Aの受理(認識)器

これは、実務上は次に対応する。

  1. 仕様
  2. テストデータ(の生成)
  3. バリデータ