\r\n\r\n
コンピュータ・プログラムは、プログラミング言語で書かれたコンピュータにタスクを実行させるための命令の集合体である。プログラミングパラダイムは、プログラミング言語をその言語特性によって分類することを可能にする。一般的なプログラミングパラダイムには、構造化プログラミングと非構造化プログラミングの2つがある。構造化プログラミングと非構造化プログラミングの大きな違いは、構造化プログラミングではプログラマーがプログラム全体をモジュールや関数に分割できるのに対し、非構造化プログラミングではコードがブロックとして記述される点である。
1. 概要と主な違い 2. 構造化プログラミングとは 3. 非構造化プログラミングとは 4. 構造化プログラミングと非構造化プログラミングの共通点 5. 横並び比較 - 表形式での構造化プログラミングと非構造化プログラミング 6. まとめ
構造化プログラミングでは、コードを関数やモジュールに分割する。モジュール式プログラミングとも呼ばれる。モジュールや関数は、サブタスクを実行する文の集合体です。各タスクが独立したモジュールであるため、プログラマーはテストやデバッグを容易に行うことができます。また、プログラム全体を変更することなく、簡単に変更することができます。cやPascalは、構造化プログラミング言語の一例である。
図01:C言語プログラムによる機能
C言語のようなプログラミング言語では、ユーザー定義関数を使うことができます。関数は、メインプログラムから呼び出されます。関数内の変数をローカル変数と呼び、グローバル変数はすべての関数からアクセスできる。構造化プログラミング言語では、選択(if/else)、反復(for/do、while)も使用します。図01のプログラムは、構造化プログラミング言語Cを使った関数を示しています。プログラムは、コードブロック開発環境を用いて作成し、実行した。
非構造化プログラミングでは、コードは全体として記述されます。プログラム全体を1つの単位として考えています。プログラムを変更することがより困難になっています。この例は、BASIC、COBOL、FORTRANの初期バージョンで使用されていたものです。非構造化プログラミング言語では、数値、配列、文字列などデータ型が限られている。
構造化プログラミングと非構造化プログラミング | |
構造化プログラミングとは、コードをモジュールや関数に分割するプログラミングパラダイムである。 | 非構造化プログラミングは、コードを個々のブロックとして扱う例です。 |
読みやすさ | |
構造化プログラミングに基づく読みやすいプログラム。 | 非構造化プログラミングに基づくプログラムは、読みにくい。 |
目的 | |
構造化プログラミングとは、コードをより効率的に、より理解しやすくすることです。 | 非構造化プログラミングは、この問題を解決するために、論理的な構造を作らないように設計されています。 |
複雑さ | |
モジュールを使えば、構造化プログラミングが容易になります。 | 非構造化プログラミングは、構造化プログラミングよりも難しい。 |
アプリケーション | |
構造化プログラミングは、小規模から中規模のプロジェクトに使用することができます。 | 非構造化プログラミングは、中・複雑なプロジェクトには不向きです。 |
修正内容 | |
構造化プログラミングの変更は容易である。 | 構造化されていないプログラミングでは、変更を加えることが困難です。 |
データ型 | |
構造化プログラミングでは、多くのデータ型を使用します。 | 非構造化プログラミングでは、データ型に制限があります。 |
コードコピー | |
構造化プログラミングにより、コードの重複を避けることができます。 | 非構造化プログラミングでは、コードの重複が発生する可能性があります。 |
テストとコミッショニング | |
構造化プログラミングでは、テストやデバッグが容易に行える。 | 非構造化プログラミングでは、テストやデバッグが困難です。 |
構造化プログラミングと非構造化プログラミングは、プログラミングの2つのパラダイムである。構造化プログラミングと非構造化プログラミングの違いは、構造化プログラミング言語ではプログラマーがプログラム全体をモジュールや関数に分割できるのに対し、非構造化プログラミングではプログラムが1つのブロックとして記述される点である。構造化プログラミング言語は現代の言語であり、非構造化言語はプログラミング言語の初期バージョンである。
本記事のPDF版をダウンロードし、オフラインで使用する場合は、引用の指示に従ってください。非構造化PDFと非構造化プログラミングの違いはこちらからダウンロードできます。