「構造化プログラミング」の版間の差分
削除された内容 追加された内容
編集の要約なし |
|||
1行目:
'''構造化プログラミング'''(こうぞうかプログラミング|{{lang-en-short|''structured programming''}})は、コンピュータプログラムに「構造」の考え方を導入してソフトウェアの開発効率と
# 1969年に計算機科学者の[[エドガー・ダイクストラ|ダイクストラ]]が発表した論文<ref name="structured_programming" />と後年の関連著作で示された手法。構造化プログラミング(''structured programming'')という言葉はこれが初出となる。論文の内容はプログラムの構造設計に関するものであり、抽象から細部へのトップダウン設計、抽象データ構造と抽象ステートメントを定義するモジュール、共同詳細化といった考え方が提唱されていた。
# 1966年に計算機科学者の[[コラド・ベーム|ベーム]]とヤコピーニが発表した論文で示された手法。内容は制御フローの正規化に関するものであり、順次、選択、反復の三つの手段
# 1970年代にIBM研究員兼上席プログラマーの[[ハーラン・ミルズ]]が、(1)と(2)を基にして提唱したソフトウェア開発技法。この[[ミルズの構造化プログラミング|ミルズ発案の構造化プログラミング論]]は一般に''goto-less''プログラミングとして知られている。
今日の構造化プログラミングに対する一般的な認識は(3)になっている。しかし(1)の[[エドガー・ダイクストラ|ダイクストラ]]が提唱した理論が本来の意味での「構造化プログラミング」であり本稿では(1)について説明する。(2)については「'''[[構造化定理]]'''」が該当記事になる。(3)については「[[ミルズの構造化プログラミング|'''ミルズの構造化プログラミング''']]」が該当記事になる。
==
{{独自研究|date=2020年2月|section=1}}
正確な定義をさて置くと、
#'''順次'''(''sequence'')ステートメントを順々に処理する。
16行目:
#'''サブルーチン'''(''subroutine'')これをコールした次のステートメントに復帰(''return'')する事を前提にして対象ブロックの起点にジャンプする。終点に達すると自動的に復帰する他、任意の途中位置でも復帰できる。
[[ファイル:Structured_program_patterns.png|中央|サムネイル|700x700ピクセル|順次、選択、反復の描写図(青はNSダイアグラム、緑はフローチャート)]]
|