プログラミングする際にはソース、つまり決まった書式のテキストを作ることが多い。
C言語、HTML、Java、PHP、XMLとか様々だが書式はフリーフォマットだ。
その逆に固定フォーマットと云うのがある。1カラムから8カラムまではxxxで、9カラム目はコメント用とか固定長のCSVそのもので、主に紙製のパンチカードの頃に出来た言語のFORTRANやCOBOLがそれだ。固定長の良さは、等間隔で文字を印字したり表示したりするデバイスやアプリを扱う場合に限られるが、今でもプログラマ向けのテキスト・エディタにはその名残りを残したものが数多く存在する。多くはWindowsのテキスト・エディタの半角空白が狭すぎて、半角空白でインデントしたソースが読みにくいとかどうでも良さそうな理由からだ。
一方フリーフォーマットと云えども好き勝手に書けるわけではない。一応、文法(BNFで記述したものが多いが・・・)に沿って書かなければいけない。しかも構造化プログラミングの影響を受けているものが多く、階層を見やすくするために階層レベルと連動させてインデント(行の左にの隙間)を入れるのが普通だ。ループの虜になったプログラマーは10階層のループにタブ(空白8文字分)でインデントを付けループの中の処理が80カラム目以降に集中し、横にスクロールしないと見えないソースとか印刷するとガタガタで読みにくいなど無茶なことをしてたようだ。もっともif if if if としか書きようが無い仕様を考え付く方が頭が変なに違いないんだが・・・
そんな訳でやっぱりソースは読みにくいのでコメントを多めに書く風潮が強くなった。
ソースの流れを読むより、INとOUTさえ判れば、大抵は困らないからだ。
しかし、この流れもサンプルコードがコメントに差し込まれ、本文のコードは数行だったり、散々な経過をたどって行く。
そんなこんなでコメントは必須但し簡素に記述するとかループは4段までとか古臭い決まりが残っている場合もある。
よく考えれば、プログラム・ソースは人間が読んだり査読したりするものではない。
人間が書き、機械が読むのが本筋だ。
だから、人間向けに読みやすくするなら、何か見やすいフォーマッタでインデントとかを見やすく付けたり、レイアウターに色々自動配置させればいいハズなのだ。
そう考えると、本当のソースはXMLっぽいフォーマットでファイルに収め、美しいソースを魅せるビュワーがあれば一番良いと思うんだけどね。一番簡単な方法としては、XMLで適当にソースを書き、IEで見て、XMLからJavaコードを捏造しコンパイルしてclassファイルにしてしまえば、良いのかもしれない。
<for initial=”int i=0″ test=”i < 10″ next=”i++” >
<for initial=”int j=0″ test=”j < 10″ next=”j++” >
<define name=”k” type=”int” initial=”0″/>
<call function=”sub” param=”i” param=”j” set=”k” />
</for>
</for>
<call function=”sub2″ param=”j” />
なんてどうだろう?
フォーマッタに見せれば
for(int i=0; i < 10; i++) {
for(int j=0; i < 10; j++) {
int k=0;
k = sub(i,j);
}
}
sub2(j);
とか
for(int i=0; i < 10; i++)
{
for(int j=0;ji < 10; j++)
{
int k=0;
k = sub(i,j);
}
}
sub2(j);
ってな具合で・・・
勿論、インデントや改行を適切に追加して保存しても良い訳し、XMLソースは書きにくいし文字数も多いから、それっぽい手書きのソースを読ませて先のXMLを正式なソースとして作る手もあるだろう。
この場合、テキストのソースは『下書き』と云うことになるのかな?(大笑)
え?XMLのまま観たい?簡単!簡単!IEで観なさい。折りたたみ機能も付いてるよ!(笑)