執筆者プロフィール
皆さまこんにちは!
株式会社福岡情報ビジネスセンターの江口です。
今回からFREE FORM RPG(以降、FFRPG)について、あれこれ書かせて頂きます。
簡単な経歴ですが、入社(1987)から1年間はCOBOLプログラムの開発、その後2年ほどバロースBASIC、PROGRESS/2を経てS/36での開発に携わりました。RPG2です。後はS/38(RPG3)、AS/400(RPG3・ILERPG)と順当にアップデートして現在のIBMiへと続いているので、30年ほどRPG関係の開発を行っています。
仕様書はどこへ行った?
フリーフォームRPGはソースコードの1行目に”**free”と記述することでソースコード全体が自由記述形式としてコンパイラに認識されます。それでは演算仕様書以外の記述はどのようになるのでしょうか。
制御仕様書(H)
制御仕様書は制御ステートメントで記述します。
例では日付を年月日形式と区切り文字に”/”を記述しているので、6桁日付はyy/mm/dd形式で
定義されます。複数のキーワードを指定する場合はキーワードの間にスペースを挿入します。キーワードの
種類、記述方法は「ILERPG解説書」を参照してください。
定義仕様書(D)
定義仕様書は変数定義、定数定義、データ構造定義の3種類に分かれます。
1.変数定義
例では4つの変数を定義しています。
変数名 | タイプ | 桁数 |
W#CHAR | 文字 | 20バイト |
W#DEC | ゾーン数字 | 15桁の整数 |
W#PACK | パック数字 | 15桁の整数 |
W#CHAR1 | 文字 | 20バイト(W#CHARと同じ属性で定義される) |
2.定数定義
例では2つの定数を定義しています
定数名 | タイプ | 定数値 |
C#DEC | 数値 | 100 |
C#CHAR | 文字 | ‘FBI’ |
定数定義の場合、タイプ指定はありません。セットされる定数値の内容で決まります。
3.データ構造定義
例では3つのサブフィールドを持ったデータ構造DS#AREAを定義しています。
定数名 | タイプ | 桁数 |
SF#CODE | パック数値 | 5桁整数 |
SF#NAME | 文字 | 10桁 |
SF#TELNO | 文字 | 15桁 |
まとめ
長くなりましたので今回はここで一区切りです。次回は
・プロシジャー・インターフェイス定義
・プロシジャー定義
・プロトタイプ定義
について調べていきます。(江口)