制御文考察

以上、制御文は現代言語としては不足と言わざるを得ません。
これでは残念ながらGoto文を使わざるを得ないでしょう。

それにしても数あるコンピューター言語の中でも醜く古臭い言語です。
制御文がまっとうでないとプログラムの汚さに直結し、メンテナンス性を失いますので深刻な問題なのです。
メモリをキロバイト、メガバイトで語っていた時代ならともかく、ギガバイトの時代にあってこの仕様というのは首をかしげざるを得ません。

例えばC言語なら次のようなプログラムを書きたかったとしましょう。
for(flag=0,index=2; index<100 && flag==0; index+=2){
(処理1)
}
似たようなことは良くあることです。Perlあたりでも同様です。
VBAでは次のようになります。
flag = 0
index = 2
Do While index<100 And flag=0
(処理1)
index = index + 2
loop

この程度でも読みにくくて行が多くなってしまうのに、もっと複雑になってくると可読性に支障が出てきます。
本質的に問題なのは言語が原始的であるが故に、意図通りの記述にならないことなのです。
インクリメント演算子一つとっても i = i + 1と i++ は本質的に意味が違うのです。

また制御分だけではなく、変数スコープの弱さも問題です。
例えばループの上でループで使用する変数の初期化をすることはよくあります。
ループの外にあるとループのための初期化なのか、ループ以降の処理のためなのかが曖昧になります。
また本来はブロックによる変数のローカライズ(隠蔽)を行うべきなのにそれが全くできないのもかなり痛い話しです。
comments (0)

コメント

Comment Form