« 大阪へやってきた | 最新のページに戻る | 無脊椎動物でのvalueとかCorollary Dischargeとか »
■ ループとXMLと私?
なんか、素朴なこと書いてみるけど、
matlabとかでifとかforとかのループを書くときに、 ifとendとの対応がわからなくならないように endのほうにもif文をコメントで書いたりすることがあります。 (Cとかだったら{}の対応ですな。)
if (xxx) if (yyy) z(i,j)=function(i,j); end % if (yyy) end % if (xxx)
これってなんか、HTMlタグだなあ、と思うんです。 ループタグ。
<loop if(xxx)> <loop if(yyy)> z(i,j)=function(i,j); </loop if(yyy)> </loop if(xxx)>
そうすると、XMLみたいにとらえられる。
XMLでは objectとして入れうる情報の置き場所が タグに挟まれているところと、 タグの中の特定子href=""とかid=""みたいな のとがあって錯綜しているのだけれど、 たぶんぜんぶ特定子から外に出すか中に入れるか どっちかにそろえることが出来る。 たとえば
<a href="http://xxx">とあるサイト</a>
とは
<a referするhttp="http://xxx" referをつけるobject="とあるサイト"></a>
とか
<a> <referするhttp>"http://xxx"<referするhttp> <referをつけるobject>"とあるサイト"<referをつけるobject> </a>
ということなのだろうし。 ただ、入れ子状になっていると簡単ではないけれど。 タグに挟まれているものは引数で、 タグ自体としてなんかの返り値を作る。 タグの中にタグがあるときは、 入れ子になってるタグでの返り値が得られないと 外側のタグに必要な引数が確定しない。 そういう意味では、 入れ子状に内側のタグで処理されうるものに関しては、 特定子として指定はできないからタグで挟み、 入れ子状に内側のタグで処理されえないものに関しては、 特定子として指定する、ってことか。
タグに挟まれたオブジェクトに特定子で属性を与える、 とも言えそうだけれど、 オブジェクトと属性の関係は 階層的かつ逆転があり得るようになってるようだ。
あと、こうやって考えると、 データベースの形にも変形できる。つまり、
[if(xxx) ~if(xxx)] * [if(yyy) ~if(yyy)]
の2*2のテーブルの四つあるセルの中の一つに
z(i,j)=function(i,j);っていうオブジェクトが入るということ。
なんかこうすると、 プログラムってのは その場で作ったオブジェクトを使って データベースにどんどん新しい次元を作りながら またオブジェクトを作る、 ということを繰り返している、 っていうイメージがわいてくる。
なんかわかんないんだけれど、 データベースの表現として、 RDBみたいにやるのと XMLみたいにやるのとがある、みたいなのを 思い出したらなんかこんなことをぼんやり思った。
アルゴリズムとかやってる人ってのは こういうことをいろいろ考えているんだろうか。
……っつうか、こういうのがチューリングマシンってことか。 わからん。
あとで「こんなLLはXXだ」の「記法がXMLだ」を発見しました。