参考文献:オーム社 國友義久著「ストラクチャード・プログラミング入門」
「ストラクチャード定理」を簡単にご紹介しましょう。これは、論理の構造化に関する定理で、Bohm(ベーム)とJacopini(ヤコビニ)によって提唱されました。以下のようにまとめられます。
ストラクチャード定理
|
プログラムが1つの入り口と1つの出口を持つように設計されていれば(これを適正プログラムと呼びます)、基本的な3つの構造単位の組み合わせによって、どんな論理でも記述できる。3つの構造単位とは、
-
順次(Sequnece)
-
選択(IfThenElse)
-
繰返し(DoWhile)
である。
|
基本的な3つの構造単位
1.順次(Sequnece)
単純に、プログラムの命令や機能の実行において、最初にAを実行し、その次にBを実行し、というように順番に実行される論理構造のこと。
2.選択(IfThenElse)
条件によって、2つの異なる機能AもしくはBの実行を選択する論理構造のこと。
3.繰返し(DoWhile)
条件が真(true)である限り、機能Aを繰返し実行する論理構造のこと。
この他に、派生的な亜種の論理構造として、CaseとDoUntilがあります。
上記の「選択(IfThenElse)」と同じことだけだが、条件がたくさんある場合に、使うと便利な論理構造のこと。基本的に「選択」でも表現ができるが、Caseのほうが表現の記述がわかりやすくなるメリットがある。
上記のCaseをIfThenElseであらわすと、下図のようになります。
これも繰返し構造のひとつだが、条件判定が、機能Aのあとに行われます。
基本構造の組み合わせ
通常、この単純な基本構造が、組み合わされ、入れ子(ネスト)することで、複雑な論理ができます。機能AやBなどは、単一の命令でも、複数の命令を一塊に見立て(サブルーチンなど)、それを部品として、論理構造を組み立てます。
単純にファイルを読み込んで明細印刷する例
特に大きな特徴は、GOTOが無いことです。すべての論理が、順次、選択、繰返しということは、GOTOが入らないことになります。繰返しでは、GOTOは使わず、DO文を使用します。また、表記方法は上手のようなフルーチャートのほかに、構造化専用にナッシ・シュナイダーマン・チャート(NSチャート)というものがあります。このチャートのが、プログラムそのものに近くなります。
さらに、チャートから一歩プログラムに近い、プログラム記述言語というものもあります。仮想プログラム言語みたいな感じです。よく雑誌で、簡単にロジックを説明する場合に使われています。興味のある方は、「構造化(ストラクチャード)プログラミング」の本を読んでみて下さい。
RPGの構造化プログラミング命令
- ANDxx(かつ)
- CASxx(サブルーチンの条件付き呼出し)
- DO (DO)
- DOUxx (DO UNTIL)
- DOWxx (DO WHILE)
- ELSE (ELSE)
- ENDyy(グループの終了)
- IFxx (IF)
- ITER(繰り返し)
- LEAVE(DOグループからの抜け出し)
- ORxx (OR)
- OTHER(その他の場合の選択)
- SELEC(選択グループの始め)
- WHxx(真の場合に選択)
1999/12/31 |