COBOLへの応用
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/06 11:41 UTC 版)
「ミルズの構造化プログラミング」も参照 1980年代にIBMの研究員ハーラン・ミルズ(Harlan Mills)は、COBOL Structuring Facility の開発を監督した。COBOL Structuring Facility はCOBOLコードへの構造化アルゴリズムを応用した。ミルズの変換は各手続に対して以下の手順を必要とした。 手続きの中の基本ブロック(入口と出口がそれぞれ1つしかないコード)を見つけ出す。 各ブロックの入口にユニークなラベル(訳注:ここで言うラベルは数値である)を割り当てる。そして、ブロックの出口に接続するべき入口のラベルを付ける。その手続きから戻るラベルに0を使い、その手続きの入口のラベルに1を使う。 その手続きを基本ブロックに分解する。 基本ブロックの1つしかない出口の行先が基本ブロックの場合、その出口に基本ブロックを再接続する。 その手続きの新しい変数を宣言する(参照のために L と呼ぶ) 余っている未接続の出口のそれぞれに次の行先(入口)のラベルの値をLに設定する文を追加する。 結果として生じるプログラムを組合せて、Lによって指定された入口のラベルの値に対応したプログラムを実行する選択文にする。 Lが0ではない限り、この選択文を実行するループを構築する(つまり、Lが0になるとループが終了し、手続きから戻ることになる)。 Lを1に初期化して、そのループを実行するシーケンスを構築する(前述のように1は手続きの入口を意味する)。 この構造は選択文のいくつかの選択肢をサブルーチンにすることによって改善できることに注意すること。 (訳注)この手順の目的は、複数の出口を持つプログラムを排除することである。変数Lに次の行先を指定することによって、出口を1つにしているのである。例えば、あるプログラムに出口が3つあるとして、それぞれの出口の行先が 100, 200, 300 とする。変数Lに行先の値(100, 200, 300)のどれか一つを代入する構造にすれば、出口は一つで済む。しかし、この方法は前述の単一の while ループ、この定理の民間伝承バージョンと同様である。
※この「COBOLへの応用」の解説は、「構造化定理」の解説の一部です。
「COBOLへの応用」を含む「構造化定理」の記事については、「構造化定理」の概要を参照ください。
- COBOLへの応用のページへのリンク