RPG (プログラム言語)
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プログラムが一つの暗黙のループの中で実行されるというものであり、別の見方をすれば、暗黙のうちに相互作用する一つのプログラムが作り上げられるということになる。現在では、プログラムフローを通常のループで制御しようとするプログラマが多いため、この機能は避けられる傾向にある。