RPG (プログラム言語)

RPG (プログラム言語)(Report Program Generator)

ロールプレイングゲーム(role-playing game)ではなく、IBMの汎用機向けに開発された、帳票出力用のプログラミング言語。IBM独自の言語。2019年現在でもIBMのミッドレンジコンピュータであるAS/400(現・System i)の開発では主力の言語である。

IBM-iまたはOS/400のシステム上で動作し、35年前に書かれたRPGプログラムが現在でもほとんど修正なしで実行可能である。新しいマシンにリプレイスしても再コンパイルの必要もなく、資産を引き継げるのがメリット。

RPG 言語は、コンパイラも実行環境も IBM i にのみ提供されています。

バージョン

FARGO→RPG→RPG II→RPG III→RPG IV(あるいはRPGLE、RPG/ILE)

2001年、OS/400 V5R1 のリリースと共にRPG IVは自由書式も可能になった。RPG IIIまでは決まった位置(コラム)に従って記述する。

フリーフォームで宣言ができるようになったのは2012年とつい最近。

完全なフリーフォームが達成されたのは2015年のこと。

過去の資産が引き継げるという、メリットが大きいため、現在でもRPG IIIのソースコードは利用されている。

RPG/400(RPGⅢ) → ILE RPG(RPGⅣ) → フリーフォーム化されたILE RPG(FF RPG)と発展してきた。

IBM i 7.3のアップデート

RPGは、フリーフォーム化宣言や、ソースコードの長さが従来の80桁から実質無制限となる

Orion エディター

OrionはEclipseテクノロジーをベースとしており、最初のリリースではRPG のシンタックスチェックがサポートされます。オープンソースのプロジェクトということもあり、RDiのプラグインを開発したiSphereやその他グループも自分たちの技術をOrionに移植するかもしれません。パソコン側に必要なのはブラウザのみ。

RPG IIIのデータ処理は固定長ファイルに対しておこなう

JavaやPHPの理解から入ると、データベースはSQLで操作するものと思うが、RPGIIIでは、固定長ファイルを1行づつ読み込み操作するイメージ。

(途中からSQLからの操作もできるようになった。)

COBOLも似たような処理なのかな。

https://anond.hatelabo.jp/20190206222550

データを処理するための専用言語

RPG3もそうですね。Report Program Generatornのアクロニムで、帳票出力を簡単にできる。

SQLでいうところのデータベースに相当するのがCOBOLではデータファイル。

RPGⅢの物理ファイルも固定長ファイルです。

テーブル定義はどこに書いてあるかというとデータファイル側ではなくてCOBOLプログラム側、というのがSQLと一番違うところかも。つまり、このデータファイルの構造はこれこれこうなっていると想定して読みます、とソースコードに自分で書く。当然実際のデータ構造がそれと違ってたらおかしくなる。

RPGⅢはプログラムで書くか、コンパイル時に物理ファイルの定義を読み込む。

開発ツール

ADTSはフリーフォームRPGには使えない、RDi は全ての世代のRPG開発に使用できる。

ADTS(Application Development ToolSet)

5250エミュレータを前提に稼働する、AS/400登場当初から利用されている開発ツールです。2008年のIBM i バージョン6.1と共に行われた機能強化が最後。

IBMの製品番号は5770-WDS。

RDi(Rational Developer for i )

IBMの製品番号は5733-RDW。

Eclipseテクノロジーに基づいたオープンな開発ツールです。

Rational Developer for i V9.6 は、Eclipse 4.6 と互換性を持つ。

コンパイラ

RPG/400コンパイラ

IBM製品番号5770-WDSのHeritage コンパイラオプションを発注することで提供されます。
2008年のIBM i バージョン6.1と共に行われた機能強化が最後。

ILE RPGコンパイラ

IBM製品番号5770-WDSのILE コンパイラオプションを発注することで提供されます。

標識

コンパイラが事前に用意してくれるBoolean型(オンとオフ、’1′ と ‘0’)の内部変数。

各行の実行を制御する選択標識と、命令実行結果を保存するための結果の標識がある。

変数名(標識名)は汎用標識(01-99)であり、各標識にプログラマーが自由に役割を持たせることができるため、プロジェクトで標準ルールを決める必要がある。

RPG3のサブルーチン

共通処理を呼び出すのみ。変数のスコープの概念なし。

スポンサーリンク
memordmレクタングル(大)
memordmレクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
memordmレクタングル(大)