CTMCP 8章:状態共有並行性

しばらく積み残していた八章以降を消化してしまおうと思います。状態共有並行性です。

関係ないですが書き物は軽量マークアップ言語がいいだろうということでemacsのorg-modeを使っていたのですが、コードの断片を埋め込めるのと記号の選び方が良くてプレーンテキストでも見やすいのでmarkdownを最近は使っています。あとはgithubに上げれば綺麗に見れますしね。

要点

状態共有並行モデルは、宣言的並行モデルに値可変変数であるセルを追加した計算モデルものである。一方、前章:メッセージ伝達並行性では、宣言的並行モデルに同じく値可変変数の一種であるポートを追加した。値可変変数を使っているのでこれらをまとめて状態あり並行モデルと言うことができるが、実際には双方のプログラミングスタイルは全く異なる...(つづき

感想

 今までバラバラだった並行キュー、ロック、モニタ、トランザクションといった原子的アクションの関係が見えたのが良かった。トランザクションはデータベースでしか出てこないイメージを持っていたけど、永続性を除外した軽量トランザクションを汎用プログラミングでフォールトトレラントのために使えるというのはなるほどと思う。すごく欲しいと思ったし、実際「うまい形で言語モデルに取り込むべき」みたいなことが書いてあった。最後の方にあったトランザクションの実装の節は、あまりに簡潔すぎて(あるいは理解が足りないのか)ちょっと理解できない部分があったけど保留にしておいた。どうせこの辺りは手を入れるときは確実に本一冊は読まないといけない分野だろう。