12/08/05 12:57:42.89
>>199
つづき
goto有害論
URLリンク(ja.wikipedia.org)
構造化プログラミング(こうぞうかプログラミング)とは、命令的プログラムの文脈において、階層的に抽象化されたプログラムの組み合わせとしてプログラムを記述する手法である。1967年、エドガー・ダイクストラらによって提唱された。
歴史
コンピュータが実用化され、その有用性が認められるようになるにつれ、その上で動作するプログラムは次第に大規模なものとなっていった。大規模なプログラムを矛盾なく正当に動作するように記述することは一般にとても困難である。
1960年代ではプログラムはフローチャートによる設計が広く採用されており、goto文も広く使われていた[2]。その一方でgoto文の多用はプログラムの質を下げるという性質や、多くのプログラムはgotoを使わずに記述できるという性質が経験則として知られていた。
例えば1959年にはハインツ・ツェマネクはgoto文に関する疑問を抱いており、後のダイクストラの考えに影響を与えた[3]。
また1960年からD. V. Schorreはgoto文を使わず、フローチャートではなくインデントで構造を表したアウトラインテキストでプログラムを記述していた[2]。
そして1966年コラド・ベームとジュゼッペ・ヤコピーニによって、任意のフローチャートは基本フローチャートの組み合わせによる等価なフローチャートに変換できるという定理が示された[4]。この定理は後に構造化定理と呼ばれるようになった[誰によって?]。
ヤコピーニは3種の基本構造(順次・反復・分岐)に分解する手法と2種(順次・反復)に分解する手法を示したが、今日単に構造化定理と言った場合前者を指す。
そのような背景の元、1968年にダイクストラは“Go To Statement Considered Harmful”[3]という記事を発表し、大きな反響を呼んだ[5]。この記事が構造化プログラミングの提唱であるとする場合も多い[誰によって?]。
「構造化プログラミング(Structured Programming)」という語は1969年に開催されたカンファレンス“Software Engineering Techniques”においてダイクストラが提唱した[1][注釈 2]。