RPG (プログラム言語)

RPG は もとReport Program Generator の アクロニムで、 IBMSystem i(以前のAS/400) サーバ向けの プログラミング言語である。 ILE (Integrated Language Environment) の オブジェクト指向機能を取り入れた RPG IVが現行である(ILE RPGとしても知られている)。最初期の 4GLとされる。

概観

IBM System i(以前のAS/400)の主力 プログラミング言語である。元はクエリー用ツールとして設計されたものだが、IBMが力を入れたことで、一人前の強力な言語になった。

典型的なRPGプログラムは File Specification から始まる。ここでは 入出力ファイルを全て列挙する。続いて Data Definition Specification である。これは データ構造配列を定義する部分で、 COBOLの Working-Storage セクションや Pascalの変数定義(var)セクションに大変よく似ている。次はプログラムの動作をコードする Calculation Specification である。出力する レポートのレイアウトを決定する Output Specification を加えてもいいし、外部でそれを決定してもいい。

初期のRPGの売り物はprogram cycleであった。これは、 レコードをファイルから読み込む毎にいくつかのRPGプログラムが一つの暗黙の ループの中で実行されるというものであり、別の見方をすれば、暗黙のうちに相互作用する一つのプログラムが作り上げられるということになる。現在では、 プログラムフローを通常のループで制御しようとする プログラマが多いため、この機能は避けられる傾向にある。

他の言語で