言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

UNDO調査

理論と実装の両面から進めている。まず理論。acm portal で「undo」を検索して大量の中からできるだーけ古そうな論文 Concepts and implications of undo for interactive recovery 1985 を読む。

undo とは何か? ある操作をして、それが undo 可能であるためには、その操作が一対一対応でなければならない。ええー。そうなのか。たとえば A の文字を打つ。これは一対一対応ではない。なぜなら、テキストのどの位置にも文字を打つ事が出来るので、undo の時にどの A の字を消せばよいのか分からない。だから undo バッファという物がいるのだが、ここではその実装の詳細に触れずに、そういうものが必要だという事を抽象化して、「拡張状態」として捉える。A の字を打つという行為を、「どこそこにAを打った」という風に拡張して記録すると、一対一(別の操作が同じ結果を生まないこと)になって undo 可能になる。これが最低限の undo の定義。

そこで undo の不完全性を導き出す。といってもたいしたこと無くて、undo だけでなく、すくなくとも redo も無いと一意な結果が得られないという事をくどくどと書いている。ふむふむ。