プログラムのあいだの通信とは何か?
またマンダラ圏Mandに関係するのだが、マンダラ圏では、直列結合と並列結合がある。並列結合にはテンソル積とスター積がある。並列結合=(テンソル積+スター積) だけでコンパクト閉圏となる。
これらの演算のなかで、テンソル積は直列結合にも並列結合にも絡んでいる。対局的な性質を持つ2つの演算は、「直列結合 v.s. スター積」だろう。どちらも2つのプログラムを通信させて、全体として複合プログラムを作る演算だ。が、通信の解釈が違う。時間方向での通信(逐次)、空間方向での通信(同時並行)の違い。
面白くもあり、混乱の原因ともなるのが、これらの通信方式=「順次結合と並列メッセージング結合」は、互いにエミュレーション可能であること。2つのサブシステム(コンポネント)をブラックボックに入れて、振る舞いから時間成分を抜いてしまう(例えばS行列を取る)と、制御とデータを一気に受け渡す順次結合と、少しずつデータを渡しながら協調動作する並列メッセージング結合の差はなくなる。
直接結合の境界点に、時間的な歴史をエンコードできる。境界点はデータで境界は受け渡しデータ型だと思える。一方で、メッセージの時系列は、同時走行システムの境界要素を定義する。メッセージ時系列は時間を時間として扱っている。