構造化プログラミング
良いプログラム
正しい動作をする。
それが正しく動作することが分かりやすく理解できる。
「大規模なプログラムを書くとき、どうしたら良いプログラムに仕上げることができるか」 という問いに対して与えられた回答。
goto文の追放
プログラムを下降型の分解により合成する
抽象から具象へ、順次段階を経て補っていく
設計に関する決定をできるだけ後へ引き延ばす
詳細化の進度とともに、その都度具体化の正しさを確認する
フローチャートを使用してプログラムを開発すると、判定と飛び先が入り組んだ
複雑な構造のプログラムができあがることがあります。
そこで、3つの構造
命令を順に実行する、
条件を判定して判定結果により処理を分ける、
条件が成り立つまで命令を繰り返す、
のみを使ったプログラミング手法が提唱されました。
これが、構造化プログラミングです。
構造化プログラミングでは上から下へ処理が動いていくため、プログラムが理解しやすく、修正なども行ないやすい利点がありますが、一方、厳密にこの3種類しか使わなかった場合、無意味な状態の判定が増える欠点があります。
このため、「1 entry 1 exit」になるなら、GOTO文の使用は最小限許そうという考えが一般的です。
ソフトウェア開発プロセスに統合された。
研究がすすむにつれ、さまざまな問題が
あきらかになり、これを解決するためにオブジェクト指向が生まれた。
Simula
ジャクソン流構造化プログラミング
関連人物
エドガー・ダイクストラ(Edsger Wybe Dijkstra)
チャールズ・アントニー・リチャード・ホーア卿(Sir Charles Antony Richard Hoare)
オーレ=ヨハン・ダール
マイケル・アンソニー・ジャクソン