時間と空間
時間を扱いたい(らしいね>自分) - 檜山正幸のキマイラ飼育記 に関連して:
- 時間を空間に変換するのがバッファリングやアキュミュレーション(累積記憶)
- 空間を時間に変換するのがストリーミングやトラバースやイテレーション
- プログラムを時間方向に結合したら、データは空間的に(一挙にドカンと)渡す。リレーのバトンタッチ。
- プログラムを空間方向に結合したら、データは時間的に(少しずつ順に)渡す。流れ作業の受け渡し。あるいはバケツリレー方式。
- 時間は時計の数だけある。多時間モデル。
- CPUは時計の数だけある。処理=プロセスは時計により駆動される。
- 異なる時計の時刻は比較できない。比較するには同期機構がいる。ほんとの同期機構は実現できない。
- 同期が唯一意味を持つのは隣接プロセス間でのIOだけ。これもフィクションではあるが。
バケツリレーにも二方式があるのか。
- 1つのバケツを持って走って次の人に渡す。
- たくさんの人が動かないで、複数のバケツだけを動かす。
絵で描くと:
- A, Bは状態のゲート(エントリーとイグジット)の集合で、横方向射の対象となる。
- X, Yはアルファベット(入力と出力)の集合で、縦方向射の対象となる。
- 左右にゲート(境界)、上下にアルファベット(基本信号)。
+--X--+- | | A F B G | | +--Y--+- | | H
- FからGには、Bの要素=状態=バルク(bulk)データで渡す。
- FからHには、Yの列=イベント列=時系列(タイムシーケンス)で渡す。
- Bの要素が非決定性なら、Bの部分集合が受け渡し情報
- Yの列が非決定性なら、Y上の言語が受け渡し情報