本文へジャンプ

第3回 IBM i 6.1(i5/OS V6R1)現代の開発言語としてのILE-RPG

IBM i スペシャリストが教えるV6ちょっと、イイ話

掲載日 2009年12月

RPGⅢは発表当時のコンピューティング環境を前提に設計されていました。このため昨今のオープン化された環境ではWebSphere® ESBやHATSなどのソフトウェアを併用することでオープン化対応を実現していました。ところが、ILE-RPGを使用することでJava® など新世代のプログラミング言語と同様な開発をRPGだけで実現可能となります。

RPGは現代では使えない言語なのか?

昨今IBM iをはじめ多くのシステムの開発言語はJavaやPHP, VB.NETのような比較的新しいプログラミング言語が主流を占めています。これらの言語と従来のRPG(RPGⅢ)やCOBOL(OPM COBOL)を比較するといくつかの点で機能的な課題が考えられます。例えば以下のようなポイントです。

RPGⅢ(OPM COBOL)での課題

ところが、ILE-RPGを使用すると上記のようなRPGⅢの機能制約はすべて解消することができます。言語としての使用感はJavaなど新世代の言語と同等のプログラミングを可能とします。今回はILE-RPGの入門編としてILEの基本構成、用語について解説いたします。

【ILEとOPMの比較】
ILEにはバインド可能、活動化グループ、静的プロシージャー呼び出し可能、などの特徴があります。

  ILE OPM
プログラム形態 プログラム、サービス・プログラム プログラム
コンパイラー コンパイルによりモジュール・オブジェクトを生成(直接実行不可) コンパイルによりプログラムを生成
プログラム生成 コンパイル、バインド コンパイル
プログラム実行 活動化グループ 各言語ごとの実行単位
他のプログラムの呼び出し 動的プログラム呼び出し、静的プロシージャー呼び出し 動的プログラム呼び出し
複数言語 複数言語の混在に対応 単一言語の使用にフォーカス
エラー処理 共通エラー処理、言語固有エラー処理 言語固有エラー処理
 

ILEのプログラム構造

ILEにはILE RPG, ILE COBOL, ILE CL, ILE C, ILE C++などが含まれます。これら全ての言語に共通してILEには以下の特徴があります。

ILE プログラムとは、1つ以上のモジュールで構成され、モジュールは1つ以上のプロシージャーから構成されます。1つのプログラム内に複数のプログラミング言語を使用してモジュールを作成することができます。


モジュール

また下記のように1つのモジュールを複数のプログラム間で共用も可能なため、再利用性、保守性も向上させることができます。

モジュールはプロシージャーとデータ項目から構成されます。モジュールは単体で実行不可能、複数のプログラムで共用可能です。


プロシージャー

モジュールの中に定義されている特定の処理を実行する自己完結型の一連の高水準言語ステートメン。
プロシージャーベースの言語の特徴として以下があります。


サービス・プログラム

サービス・プログラムは他のILEプログラム、サービスプログラムから直接アクセス可能なプロシージャーとデータ項目を含みます。


バインド・ディレクトリー


プログラムおよびプロシージャーの呼び出し

方法1:動的プログラム呼び出し

方法2: 静的プロシージャー呼び出し


活動化グループ

活動化とは

活動化グループとは

活動化グループ単位で変数の値などを共用することができます。


ILEプログラムの作成

ソース・コードからモジュールを作成CRTxxxMODコマンド

モジュールやサービス・プログラムをバインドしてプログラムを作成CRTPGMコマンド

モジュールやサービス・プログラムをバインドしてサービス・プログラムを作成CRTSRVPGMコマンド


ILEプログラムの作成例

Step1:CRTRPGMODコマンド等でモジュールを作成

Step2:CRTPGMコマンドで入り口モジュールを作成

Step3:CRTSRVPGMコマンドでサービスプログラムを作成します(必要な場合)

プログラムTEST
ILEプログラムとは、1つ以上のモジュールで構成され、モジュールは1つ以上のプロシージャーから構成されます。

バインド・ディレクトリー BNDDIR01
ディレクトリー項目 SRV02, SRV03

次回以降でILE-RPGのプログラミング、機能の詳細についてご紹介する予定です。

IBM、IBMロゴ、ibm.com、WebSphereは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについては、www.ibm.com/legal/copytrade.shtml(US)をご覧ください。
JavaおよびすべてのJava関連の商標およびロゴは Sun Microsystems, Inc.の米国およびその他の国における商標です。