エージェント(タスク)、プロセッサ、状態空間
タスクというわけが分からない概念がある。ひとまとまりの仕事という意味だが、それじゃ国語辞典の項目としての説明なだけで「定義」になってない。仕事に対してその仕事をする主体をエージェントと呼ぶことにする。「やること」と「やる主体」の違いしかないから、エージェントとタスクは1:1で対応する。つまり、interchangable。エージェント概念をハッキリさせれば、タスクもハッキリすることになる。
まず、プロセッサと状態空間(メモリ)は、加群として定義できる。プロセッサ本体は、加群の作用のことで、作用は加群台AとモノイドMに対する射 AM→M in モノイド圏C で与えられる。
複加群(multi-module)は、単一の台に複数のモノイドが作用するもの。異なる作用のあいだの結合律やバランス律は仮定しない。プレモノイド圏において交替律を仮定しないのと一緒。
複加群は、マルチコア・単一メモリ空間のシステムを記述する。コア=プロセッサが分離されているとは限らずに共有メモリ=相互干渉を許す。相互干渉があると、交替性、結合性、バランス性はくずれる。
エージェントは、与えられた複加群の部分複加群と考えればいいのかな、と思っているが、まだよく分からない。部分複加群というよりは、複加群のあいだの射がエージェントなのかもしれない。域となる複加群は構文的に作ったものだろう。構文的な(おそらくは自由な)複加群から意味的な複加群への対応がエージェントかな。そうなると、エージェントは複加群セマンティクスとなる。