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

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

オートマトンと双代数の現実的な意味と例

次の3者の関係が問題

  • 仕様と仕様の記述方法
  • 仕様に基づいて実装する“実装者”
  • 実装が仕様に合致しているかどうかを確認する“テスター”

次のように考える。

  • 仕様は、モノイド生成元と関係で与えられる。関係には観測演算子が使われる。
  • テストには、テスト式と期待表明(エクスペくテーション)とテスト結果が使われる。
  • 実装者は内部構造を知っている。
  • テスターは内部構造を知らない。

あるいは、

  • 仕様は指標と公理系
  • 実装はモデル
  • テスターは論理を使う

例は、いつものヤツ

  • トグルボタン(toggle, isOn)
  • カウンター(up, down, value
  • 危ない自然数スタック(empty状態でpopすると壊れる)
  • ab* の認識器({a, b}* が作用して、状態空間は {0, 1, ⊥})

注意事項

  • 構文と意味論を区別する。関数名と関数
  • カリー化と適用写像:遷移写像=作用としての解釈と、名前から写像空間への写像
  • 終状態を観測演算子で置き換える。