非構造化プログラミング 非構造化プログラミングの概要

非構造化プログラミング

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/15 10:11 UTC 版)

ナビゲーションに移動 検索に移動

非構造化プログラムは可読性が低くデバッグすることが難しい。そのため、何らかの構造をサポートするプログラミング言語では使われない手法である。しかし、条件文とgoto文の組合せによって任意のプログラム構造が実装可能であり、理論上はプログラミング言語にそれ以外の制御構造は必要ない。非構造化プログラミングはまだMS-DOSバッチファイルのようなスクリプト言語やBASICFORTRAN 66のような古いプログラミング言語で使われている。goto文(ジャンプ)は呼び出し手続きより僅かに性能が高いとはいうものの、現在のCPUアーキテクチャでは無視して良い程度になった。実際、不適切なそのような文の使用はコードを混乱させたりコンパイラ最適化を阻害してしまい、有害である場合がある。

アセンブリ言語はほとんどが非構造化言語である。なぜなら基本的な機械語には構造が決して無いからである。それが持つ唯一の構造は、基本的な(スタックベースのマシンによくある)「サブルーチンジャンプ; Jump to Subroutine」命令や、関数の始めと終わりを示すなどのコンパイラなどが必要とする記述だけである。

現代の用途

現代のプログラミングの多くは構造化されている。しかし、構造化パラダイムでは制限が強すぎることがあり、一部のロジックは非構造化の方が簡単に表現できる(構造化プログラミングを参照)。

例として、リターン文がある。関数からのリターンは残りのコードを実行せずに当該関数から復帰させる。これは非構造化パラダイムの一種であり、構造化プログラミング言語でも広く採用されている。同様のことはループからの脱出などにも当てはまる。

一方で、純粋関数型言語では、あらゆる場所が「途中リターン」になっているようなものと言え、手続き型言語中でも純粋な関数であれば、むしろ途中リターンで書いたほうが単純でわかりやすくむしろ構造化されているとも言える。つまり表面的なコーディング規則で教条的に「途中リターン禁止」などとするのは、構造化というものを全くわかっていない証拠でもある。

また、例外処理継続も非構造化パラダイムの例である。継続は Goto 文の機能を汎用化したものと言える。

関連項目




「非構造化プログラミング」の続きの解説一覧




非構造化プログラミングと同じ種類の言葉


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「非構造化プログラミング」の関連用語

非構造化プログラミングのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



非構造化プログラミングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの非構造化プログラミング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS