プログラム方式と日常生活
いつも愛読しているブログのタイトルをみて、妻のことかと思った。「主婦」と銘うってあるが、これはどのような場合にでもいえる、モデル化されたソフトウェア工学の見地からの効率的な行動基準といえる。優秀な主婦はイベント・ドリブン(event-driven)方式でパンを焼くまさしく、ぼくが普段感じていることを代弁した記事である。ぼくも休日は、いろいろ家事をやるが、基本的に一度にひとつのことを集中して行う。手続き型(procedure)処理の典型である。手続き型のプログラミングの場合、ある目的に対して、それを完遂するまでの手続きを始めに想定し、それを順番に処理(task)していくわけだが、たいていは途中で別のタスクが割り込む。割り込み時の処理も決めておく必要がある。割り込み処理は、その時点の状態を一時保存し、割り込みタスクを処理し、終了後に割り込み前の状態を呼び戻すことで、元のタスクの処理を再開する。このときの一時凍結した状態を保存する場所を、スタックバッファーという。割り込み処理が発生し、別タスクへ分岐した後、さらに割り込みが入り分岐が生じるという、多重の分岐が生じるケースも少なくない。こうした状態になると、徐々にスタックバッファーが消費されていき、いずれバッファーがあふれる。「さっき何やってたんだっけ」と、やりかけのまま戻ってこれずに放置されるタスクが散見される状態となる。こうした崩壊を、イベントドリブン方式では、実にうまく解決できる。常日頃から、妻はえらいなぁ、と感心している。