僕はプログラムを文字列としてだけでなく、図としても見ているのかもしれないな。

昨日のを書いてて思ったんだけど、どうも、僕はプログラムの論理的構造と、見た目の構造が一致しているのが好きなようだ。見た目、というのは、比喩表現ではなくて、単純に、ソースコードの見た目、だ。


ただ、それだけの話なんだけど、これは、なかなか面白い話かもしれない。
例えば、僕は構文解析は、yaccで書くよりも、自分で再帰下降したほうが漠然と好きだったりするんだけど、こういうのも「綺麗な木構造になってる構文木yaccみたいな並列的な書き方との対比に気持ち悪さを感じる」もんだとしてしまえば、自分の中でうまく説明できるような気がする。


プログラムは、自身の構造を、処理の記述だけでなく、見た目でもそれを表現していてほしいのだ。「コメントはプログラムの処理を記述するべきではない、プログラムが処理を説明しているようにしなければならない」と、いうことばに、僕は、さらに、「プログラムの構造は別の図で表現すべきではない。ソースコードの見た目が、それ自身の構造を表していなければならない」と、いうことばを付け加えたいわけだ。んんん。うまく説明できないな。

(わかるかなぁ…こんな文章で。例えば、美しい木構造になっている継承関係をプログラム内のクラスに変換してしまって、それで、プログラムの見た目で継承関係を表せないから、プログラムのオマケとして、クラス図を付け加えるとかっていうのが、まさに、その悪い例で、こういう話、「オブジェクト指向」とか、「オブジェクト設計」とかっていう言葉に嫌悪感を感じる人だったらわかってくれると思うんだけど…)



そんなわけで、ただひたすらパターンマッチを行うっていう並列処理である型チェックとそれの見た目をあわせたいから、昨日みたいな話になったんだろう、と、自分の中で納得したわけだ。