generated at
構造化プログラミング
良いプログラム
正しい動作をする。
それが正しく動作することが分かりやすく理解できる。
「大規模なプログラムを書くとき、どうしたら良いプログラムに仕上げることができるか」 という問いに対して与えられた回答。
goto文の追放
プログラムを下降型の分解により合成する
抽象から具象へ、順次段階を経て補っていく
設計に関する決定をできるだけ後へ引き延ばす
詳細化の進度とともに、その都度具体化の正しさを確認する
プログラムの検証(Verification)
フローチャートを使用してプログラムを開発すると、判定と飛び先が入り組んだ複雑な構造のプログラムができあがることがあります。
この入り組んだ状態を称して、スパゲッティプログラムと呼ばれました。
スパゲッティプログラムは単にプログラムが読みにくい と言うよりも、読み難さが原因保守性を損ないます。

そこで、3つの構造
命令を順に実行する、
選択selection,if-then-else)
条件を判定して判定結果により処理を分ける、
繰り返しiteration,do-while)
条件が成り立つまで命令を繰り返す、
のみを使ったプログラミング手法が提唱されました。
これが、構造化プログラミングです。
構造化プログラミングでは上から下へ処理が動いていくため、プログラムが理解しやすく、修正なども行ないやすい利点がありますが、一方、厳密にこの3種類しか使わなかった場合、無意味な状態の判定が増える欠点があります。
このため、「1 entry 1 exit」になるなら、GOTO文の使用は最小限許そうという考えが一般的です。
ソフトウェア開発プロセスに統合された。
研究がすすむにつれ、さまざまな問題があきらかになり、これを解決するためにオブジェクト指向が生まれた。
Simula
ジャクソン流構造化プログラミング
関連人物
エドガー・ダイクストラ(Edsger Wybe Dijkstra)
チャールズ・アントニー・リチャード・ホーア卿(Sir Charles Antony Richard Hoare)
オーレ=ヨハン・ダール
マイケル・アンソニー・ジャクソン