構造化プログラミングと脳みそクラッシャー

COBOL は構造化プログラミングが可能な言語として名前が挙げられることが多い。
でも、COBOL が構造化プログラミングできる言語だというのはまったくもって真実ではない。
COBOL の構造化の考え方はこうだ:

COBOL には3つの構造化文がある!  
曰く、「順次」、「反復」、「分岐」だ!
これを持っているから、COBOL は構造化プログラミングをサポートした言語なんだ!!!

えーっと、それで?
それは、食パンには 3 つの要素があって、ふかふかの白いところ、茶色い耳だ!*1
というのとなんら変わりがない。 白くて茶色というのは食パン以外のパンにも当てはまる興味深い点で、それって特徴にもなっていないんじゃないの?

私が思うに、構造化というのは IF 文や FOR 文、その他の文のような要素のことを指すのではなくて、それを使って更に巨大な構造を作ることを指すんだと思う。
っていうか COBOL にはその点がまったく抜けていて、構造化プログラミングができないできそこないの言語だと言えるんじゃないだろうか?

今となっては構造化というのは、ビルを作るときのコンクリートを混ぜ合わせるときのコツのようなありふれた知識になってしまっているような感じがあるけれど、 そのことについてあまり理解されていないというのは本当に嘆かわしいことだと思う。

*1:3 つめを考えるのがめんどくさかった