コンポネント概念とコンパクト閉圏
実務作業の8割くらいは雑用、でへこむ。が2割くらいエッセンシャルな部分がある。
janusコンポネント概念は、具体的なプログラミング言語を固定して考えると割と具体的。なんだが、複数言語による分散アプリケーションとかを考えると、実装との距離が広がり、抽象的な感じがしてくる。
しかしその分、適用範囲が広がる。今まであまり意識しなかったのだが、プロセス、媒体(メディア)、バッファ/キュー(チャネル)などもコンポネントの特殊なケースとして記述できる。
プロセスはスレッドを持ったコンポネントだが、スレッドはメッセージ(またはメソッド)のソースとシンクという力学的な概念で記述できる。メッセージソースまたはメッセージシンクがスレッドにあたる。ソースとシンクはある主の双対だから、プロセスも双対的定式化を持つと思われる。
それと、コンポネントの圏がコンパクト閉圏なのはほぼ確信していたが、そのコンパクト閉圏がトレース付き圏(traced symmetric monoidal cat)からInt構成で作られたものかそうでないかがわからなかった。分散アプリケーションを考えると、Int構成じゃない圏の例が出てくるような気がする、たぶん。