FBI BLOG

ブログ記事

最終更新日: 2023.10.18

RPG言語徹底比較

執筆者プロフィール

皆さまこんにちは!
株式会社福岡情報ビジネスセンターの江口です。
今回からFREE FORM RPG(以降、FFRPG)について、あれこれ書かせて頂きます。
簡単な経歴ですが、入社(1987)から1年間はCOBOLプログラムの開発、その後2年ほどバロースBASIC、PROGRESS/2を経てS/36での開発に携わりました。RPG2です。後はS/38(RPG3)、AS/400(RPG3・ILERPG)と順当にアップデートして現在のIBMiへと続いているので、30年ほどRPG関係の開発を行っています。

 

RPG3、ILERPG、FFRPGの比較

今回はFFRPGについて、の前にRPG3、ILERPG、FFRPGの比較を行います。サンプルプログラムを用意しました。
簡単な金額計算とファイル更新を行うプログラムです。

①RPG3

まずはRPG3のソースコードです。簡単に説明します。
0001.00のH仕様書はお約束 日付:YMD形式で/区切りが入ります
0002.00のF仕様書は使用するファイルの定義
0004.00~0014.00はプログラムロジック 金額計算とレコードの更新を行っています
0016.00のLR標識をオン、0017.00の呼び出し元への戻し
でプログラム終了です。
ほっとしますね。長くIBMiを使われているお客様のソースコードを見せていただくと、ほとんどの場合はRPG3でコーディングされています。

②ILERPG

次にILERPGのソースコードです。

ちょっと横に長くなったかな?くらいしか違和感はありませんがRPG3と比較すると例えば、C仕様書の項目1・項目2・結果のフィールドの名前の長さが14桁まで使用できるように拡張されたり、命令コードの桁数が10桁に拡張され、RPG3では短縮されていた命令コードを自然な違和感のない命令に変更されています。また組み込み関数を使用できるようになり、ロジックを簡潔に記述できます。 実はOS/400 7.1.0 TR7以前はC仕様書だけフリーフォームに対応していました。7桁目から”/FREE”と記述すれば”/END-FREE”と記述した行までフリーフォームとして認識してくれます。

③FFRPG

最後にFFRPGです。

FFRPGの場合はRPG3、ILERPGと違ったエディタを使用します。統合開発環境で名前はRDi(Rational Developer for i)です。Eclipseベースの開発環境なので、Java、PHP、Python等の開発を行っている方でしたら違和感なく使用できます。FFRPGのソースコードを拡大します。

FFRPGでは6桁目の仕様書区別はありません。1行目に”**FREE”と記述するとコンパイラは完全フリーフォームと認識します。H仕様書はCTL-H、F仕様書はDCL-Fで定義します。

次回は固定フォームとFFRPGの違いについて深堀りしていきます。
(江口)

▼次の記事を読む
FFRPGの仕様を解説!

FFRPGの仕様を解説!

そんなご質問・ご相談でも大歓迎です!

ITの力で企業の未来を支える

お気軽にお問い合わせください。
お客様のご要望に合わせて、最適なシステムをご提案いたします。

お問い合わせ