Loading article…
非構造化プログラミングは、チューリング完全なアルゴリズムを作成できる歴史的に最も古いプログラミングパラダイムです[要出典]。これは、構造化プログラミングパラダイム、特にgotoステートメントまたは同等の非構造化制御フローの使用と対比されることがよくあります。この違いは、オランダのコンピューター科学者Edsger W. Dijkstraが 1968 年に「構造化プログラミング」という用語を作り出した影響力のある公開書簡「 Go To ステートメントは有害である」を発表したことで特に強調されました。[1]
非構造化プログラミングは、読みにくい(「スパゲッティ」)コードを生成するとして厳しく批判されてきました。
非構造化プログラミングを使用する高レベルおよび低レベルのプログラミング言語があります。非構造化言語としてよく挙げられる言語には、JOSS、FOCAL、TELCOMP、アセンブリ言語、MS-DOS バッチ ファイル、 BASIC、Fortran、COBOL、MUMPSの初期バージョンなどがあります。
特徴と代表的なコンセプト
基本概念
非構造化言語のプログラムでは、ラベルまたは命令アドレスへの非構造化ジャンプを使用します。行には通常番号が付けられるか、ラベルが付いている場合があります。これにより、実行フローでプログラム内の任意の行にジャンプできます。これは、ステートメント、選択 (if/then/else)、および繰り返し (while および for) の順次構造を使用する 構造化プログラミングとは対照的です。
参考文献
- ^ Dijkstra 1968、「go to ステートメントを無制限に使用すると、プロセスの進行状況を記述するための意味のある座標セットを見つけることが非常に困難になります。...現状の go to ステートメントはあまりにも原始的であり、プログラムを台無しにする原因になりすぎています。」
さらに読む
- Cobb, Gary W. (1978). 「非構造化プログラミング言語の構造の測定」ACM SIGSOFT ソフトウェア エンジニアリング ノート3 ( 5): 140–147. doi : 10.1145/953579.811114 . ISSN 0163-5948.
外部リンク
- BPStruct - 並行システム(プログラム、プロセス モデル)を構造化するツール
