予習

11月26日火曜日、晴れ

リングフィット アドベンチャー、レベル93に到達しておりステージ11を始めたところ。ドエースさんという方が出ていらっしゃった。
久しぶりに運動負荷を上げてみるか? と聞かれたので「はい、いい感じに」とお願いしたところ30に到達したらしく、どうやらこれが設定できる最高の負荷のようだ。

ステージ11の上に、少なくともまだ2ステージの余白は見えており、冒険は長く続きそう。ま、楽しめるとおもえば!

* * *

「ねえ、これ話が飛んでるんじゃない?」
『はじめアルゴリズム』第9集を渡した妻が発した一言。
「あ、やっぱりそうだよね? うん、なにか繋がりが悪いとおもったんだ。でも忘れているだけかもしれないし自信がなかったんだよ」と答える僕。

自分の記憶力に自信が持てなくなっているというのが、なんとも情けない。とほほ。

* * *

デッドロック発見器、メッセージ通信編の勉強会の前に、自前発見器をつくっておこう計画を密かに実行中。

とりあえずプリミティブを考えてみるところから……

手始めにこんなのを考え始めたんだけれど、 State そのものに Transition を持たせるのは初期化で困りそうだとおもいあたる。
なにがしかプロセスの状態遷移グラフを考えたとき一般にそれはループを構成するはずで、そうすると最初の State をつくる前に最後の State が必要になる。最後の State を作るためにはその手前の State が必要で……。これを繰り返すと最初の State が必要だとなり、どこから作り始めるのも無理、なんていう話になってしまう。

いや、もちろんこんな感じのズルはできるんだけれど……(外から操作できる transitionImpl を持たせて必要な State や Event を定義した後で遷移を追加する) 

それよりは必要な State と Event をあらかじめ定義して、必要な State に対して Transition の集合を関連づけるというのが素直でわかりやすかろう。

あとはこれに同期イベント集合と初期状態を関連づけて並行合成できれば良い。
あ。 State に並行合成「前」の State を公開する口を持たせるのもよいかもしれないな。こんな感じで。

デフォルトで自分自身だけが subState という実装を与えておく。並行合成したときは合成した State を subState として持たせる感じ。
並行合成した結果は Map<State, Set<Transition>> で返す。

この記事が気に入ったらサポートをしてみませんか?