OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

構造化プログラムについて

  • すぐに回答を!
  • 質問No.106980
  • 閲覧数569
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 12% (2/16)

構造化プログラムは何か教えてください・またなぜこの
技術が使われるようになったかも知りたいです.
お願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル13

ベストアンサー率 29% (334/1115)

こういうことだと思います。 (構造化プログラミング) ...続きを読む
こういうことだと思います。
(構造化プログラミング)
お礼コメント
powerkido

お礼率 12% (2/16)

わたしの質問に答えてくださって本当にありがとうございます.
いい勉強になりましだ.
投稿日時 - 2001-07-20 22:51:26


  • 回答No.2
レベル13

ベストアンサー率 37% (570/1525)

E.W.ダイクストラが提唱したプログラミングのアプローチです。 詳細はサイエンス社「構造化プログラミング(ISBN19-0276-6)」E.W.ダイクストラ、C.A.R.ホーア、O.-J.ダール著を読んでください。 一般にいわれる“構造化プログラミング”は機能設計以降のフェーズに特化して語られることが多いのですが、ダイクストラの提唱したものはもっと広い範囲を含んでいます。
E.W.ダイクストラが提唱したプログラミングのアプローチです。
詳細はサイエンス社「構造化プログラミング(ISBN19-0276-6)」E.W.ダイクストラ、C.A.R.ホーア、O.-J.ダール著を読んでください。

一般にいわれる“構造化プログラミング”は機能設計以降のフェーズに特化して語られることが多いのですが、ダイクストラの提唱したものはもっと広い範囲を含んでいます。
  • 回答No.3
レベル12

ベストアンサー率 22% (121/535)

プログラムをいつも最初から作っていると大変ですよね。 それにプログラムの中には、いくつも同じようなロジックが出てくるのだから 他のプログラムでも使えるロジックを部品として考えれば、新しくプログラム を作るとき、前に作っておいておいた部品をそのまま使えると、開発の効率が 良くなりますよね。 プログラムによっては、部品とほんの少しの修正だけで出来るようになります。 また、部品を共同で使えるようにす ...続きを読む
プログラムをいつも最初から作っていると大変ですよね。
それにプログラムの中には、いくつも同じようなロジックが出てくるのだから
他のプログラムでも使えるロジックを部品として考えれば、新しくプログラム
を作るとき、前に作っておいておいた部品をそのまま使えると、開発の効率が
良くなりますよね。
プログラムによっては、部品とほんの少しの修正だけで出来るようになります。
また、部品を共同で使えるようにすると、プログラマの癖が無くなり誰が見て
も判り易い物になります。
構造化はプログラムの作り方をブロック単位で考えて、実行の順序をグループ
(階層化)として扱う方法です。
そのような作り方をすると、ひとつの大きなプログラムを数人のチームで作る
ことが出来るようになります。
お礼コメント
powerkido

お礼率 12% (2/16)

私の質問に答えてくださって本当にありがとうございます.
いいお世話になりましだ.
投稿日時 - 2001-07-20 22:48:46
  • 回答No.4

構造化プログラミングは、プログラムの正当性を証明できるように、あるいは後から証明しやすいように心がけてプログラミングするという考え方です。 構造化プログラミングを提唱したE.W.ダイクストラは「テストはプログラムにバグがあることは示せるが、バグが無いことは証明できない」と述べています(The Humble Programmer, 1972)。 ダイクストラは、無秩序なgoto文の利用が正当性の証明を難 ...続きを読む
構造化プログラミングは、プログラムの正当性を証明できるように、あるいは後から証明しやすいように心がけてプログラミングするという考え方です。

構造化プログラミングを提唱したE.W.ダイクストラは「テストはプログラムにバグがあることは示せるが、バグが無いことは証明できない」と述べています(The Humble Programmer, 1972)。

ダイクストラは、無秩序なgoto文の利用が正当性の証明を難しくしバグの発見や修正を困難にすることを見出して、プログラミング言語からgoto文を排除した方が良いと述べました(Go To Statement Considerd Harmlful, 1968)。当時goto文の利用は一般的だったので、これは大きな論争を引き起こしました。

この頃、プログラムの正当性を証明する最も有力な手法の一つがC.A.R.ホーアが提案した公理に基づく証明方法でした。ホーアは、順次(;)・選択(if)・反復(while)の3つの基本制御構造について推論規則を定義し、記号論理に基づいてプログラムにバグが存在しないことを証明できることを示しました(An Axiomatic Basis for Computer Programming, 1969)。これはホーア論理として知られています。

自身が引き起こした論争に応えてダイクストラは、推論規則の定義された制御構造を用い、大きな処理から小さな処理へと徐々に問題を小さく分解しながら証明しやすい構造のプログラムを作るという、段階的詳細化(stepwise refinement)の考えを示しました。すなわちこれが構造化プログラミングです(Structured Programming, 1972, E.W.ダイクストラ, C.A.R.ホーア, O.J.ダール)。

その後、ホーア論理は形式手法(formal method)の研究の流れに受け継がれていきました。一方、構造化プログラミングの注目を受けて、段階的詳細化や基本制御構造のアイディアは設計や分析の工程にも適用され、構造化設計や構造化分析として広まりました。良く知られている構造化○○の「分かりやすいプログラムを作る」という考え方は後者から来たものです。

C.BohnとG.Jacopiniはダイクストラが論文で引用したので引き合いに出されますが、3つの制御構造だけでもプログラムは書けるという言及が含まれるだけで、構造化プログラミング自身とはさほど関係が深くありません。BohnとJacopiniの論文のタイトルも3つではなく2つです(Flow Diagrams, Turing Machines and Languaes with Only Two Formation Rules, 1966)。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ