« 大阪へやってきた | 最新のページに戻る | 無脊椎動物での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だ」を発見しました。


お勧めエントリ


月別過去ログ