いや、まだだから

やまだの仮想庭園 ~ いつか実体の伴う日まで

目次

Blog 利用状況

記事カテゴリ

書庫

日記カテゴリ

リンク

状態遷移と動作遷移

いんすぱいあーど:凪瀬 Blog電卓の話で妄想したこと
#というより、おおもとは土曜日の公開チャット(笑)だったりしますが。

えーと、Blog にmyugaruさんちで知ったココロとか入れてみたんですが、そっこーでRさんにぺたぺたされてました。
いろんな意味で、私のココロがよごされてしまったような気がするのは内緒の昨今、皆様いかがお過ごしでしょうか。

 

で、本題です。

凪瀬さんが電卓の話に関連して「キューで実現できないかなぁ」とおっしゃってたのに対し、「いや、電卓だったらキューよりスタックなんじゃ?」とか私が返してたです。

そのとき、私の頭の中には逆ポーランド電卓しかなかったです。いや、ついていくのが精一杯で、何も考えてなかったに等しかったり。ああいうときに空白があくと妙に気になるので、とにかく何か書かなきゃ状態で。そういう私は関西人(笑)

#ごめんねさい、ごめんねさい、ごめんねさい > リアルタイムで見ていた方、ログ入手された方。

 

で、凪瀬さんがエントリあげたので乗っかってみようかと。

といっても、このエントリの内容、いまいち把握しきれていません。なので、ここからはやまだ流の妄想ということで。

#妄想なので、「結局、何が書きたいのかよくわかりません」って反応が一番予想できるけど……。

 

電卓祭りのときもそうでしたが、「こういうものは状態遷移図を利用すると、すっきり表現できますよ」って話になったりします。

状態遷移の考え方を否定する気はさらさらないです。というか、むしろ肯定派。でも、それ以外の考え方ってないのかな、と。

で、遷移で管理するのは何も「状態」に限る必要はないかな、と思ったりしたわけで、「動作遷移」ということばを考えてみました。

 

たとえば以下のようなコードがあったとします。

image

これだと if 文の嵐となって収拾つかなくなるから状態ごとに管理しましょう、それは良いんです。でも、if文を減らすテクニックとして考えると、それだけじゃないはず。

このコードが実行されるときって、どういうイベントが起こったかは確定しているはず。じゃあ、そのイベントに応じて、コードが差し替えられていく(遷移する)ことによっても、if 文を減らす効果はありそうだな、と。

特に電卓なんか、押すボタンによってダイナミックにコードが書き換えられていくと面白いものになったりしないかなー、と。

じゃ、具体的にそのサンプルを示してみろ、というとあまりまとまらないんですけどね。だから「妄想」だったりします。

 

まあ、要するに C でいうところの「函数ポインタ」というところに落ち着いちゃうかもしれませんが……。

Java とか .NET の世界だとリフレクションとかすぐそういう話になるんですが、アセンブラで考えると自分のプログラムを書き換えるようなコードも普通に書けるんですよね。もちろん、不用意に行うとバグの温床になったりしますが。

#ちょっと最近個人的にやりたいことがあって、発想がアセンブリ寄りだったりします。

> とりあえず、今日は妄想だけ放出ということで。

同じく。

でも、私の方の妄想に収拾がつく日は来ないかもしれません…… orz

投稿日時 : 2008年3月20日 15:16

Feedback

# re: 状態遷移と動作遷移 2008/03/20 20:06 凪瀬

私が構文解析で扱ったら、という着想を得たのは
http://www.kmonos.net/wlog/83.html#_1021080304
が元になっています。
これはプログラム言語から実行コードを作る際の過程ですね。
んで、電卓の一連の操作というものも同じ概念で考えれるんじゃないの?という話でした。

なお、Javaで関数ポインタのようなことをしたい場合は
http://blogs.wankuma.com/nagise/archive/2007/12/20/113857.aspx

プログラムコード自身を上書きするのはアセンブラならではですが、
処理を切り替える程度なら今時の言語は結構簡単に、安全に行うことができます。

# re: 状態遷移と動作遷移 2008/03/21 10:54 ぽぴ王子

ちみたち…人のセッション中になに面白いことしてるんですか!(笑)
なんか楽しそうなので、僕にもログくだーたい>片桐さん

あ、でも僕のぐだぐだでコンポーネントの話のほうがむしろメインだった
セッションから、nagiseさんのネタになったのかもと思うとちょっと
うれしかったり。
僕のは役に立たなくても、役に立つ人のインスピレーションになれば
うれしいなっていうかそういう感じで。

電卓、改めて自分はぜんぜんまったくわかってないよ、とか思ったので
ちゃんと作り直そうかなあと思うんですが、そんなに引っ張るネタでも
ないよねーとか思ったり。
ただネタとしては引っ張るようなものでもないけど、自習として状態遷移
は勉強しなおすべきだというのは一気痛感しました。

ところでやまださんの一人セッションの続きはまだですか?w

# re: 状態遷移と動作遷移 2008/03/23 18:39 myugaru

こんにちわっ!
>そっこーでRさんにぺたぺたされてました。
あっ!私は逆にRさんちのココロをぺたぺたしまくりましたよっ!
「R・田中一郎さんのキリぺたをふんじゃいました。」
というメールがきましたww

# re: 状態遷移と動作遷移 2008/03/25 4:22 やまだ

凪瀬さん
> なお、Javaで関数ポインタのようなことをしたい場合は
確かに、インタフェース宣言すれば、って話もありますが、もう少しダイナミックにできないものかなぁ、と。
#なんか、うまく説明できないですけれど。

ぽぴ王子
> nagiseさんのネタになったのかもと思うとちょっとうれしかったり。
私が見事にスルーされてたり…… orz
いいもんね。
> ところでやまださんの一人セッションの続きはまだですか?w
自分の懸案事項がなくなったとたんに強気ですね(^^;
まあ、暖かくなってきたら再開したいかな、と。

myugaruさん
> あっ!私は逆にRさんちのココロをぺたぺたしまくりましたよっ!
あれ、ほんとはプロフィール確認した場合みたいですね。でも「ぺたぺた」ってニュアンスがちょっと……あれですよね。

タイトル
名前
Url
コメント