RPG(プログラミング言語) – ウィキペディア

before-content-x4

レポートプログラムジェネレーター RPG )商業地域の問題指向のプログラミング言語です。言語は当初、IBMによってコマーシャルリストを作成するために開発されました( 報告 )。 RPGは後にプログラミング言語に拡張されました。

after-content-x4

RPGは、IBMによって書かれた機械的データ処理の履歴について、「プラグインプラークからデータベースへの橋」として説明しています。 [初め] 。したがって、たとえばIBM 1401システムが使用された場合、表形式マシン(プラグインテーブル)からレポートジェネレーターへの遷移が可能になりました。

元IBMの従業員であるGüntherSander、Hans Spenglerは、RPGを見たときに同様に主張します。

「ITシステム、特にIBM 1400シリーズで多数のスイッチングカードマシンをサポートするために、IBMはレポートプログラムジェネレーター(RPG)を開発しました。これは、表形式の機械アプリケーションのリスト構造と、説明フォームから1401プログラムを作成した翻訳プログラムを記述するために使用できる説明言語です。」 [2]

またはここ

「従来のホールカード処理から電子データ処理への切り替えを容易にするために、1960年代の多くの(IBM)コンピューターで高言語RPGが開発され、利用可能になりました。それらの構文は、Tabelierマシンの作業に強く基づいていましたが、配管ボードの退屈なケーブルはソースコードとコンパイルの書き込みに取って代わりました。 [3]

当時、Tabelierマシンと穿孔カードはデータ処理で機能していたため、RPG IVバージョンがリリースされる前の音声構造は列向けでした。グループの変更に示されています。

この言語は、主に主要な計算機の領域で使用されます。これは、S/390やAS/400(システムI)などの中間データテクノロジーに等しいミニ計算機です。リスティングの言語から、RPGはさらに、ダイアログ処理やリレーショナルデータベースの作業など、すべての商用アプリケーションをカバーするプログラミング言語にさらに発展しました。

RPGで書かれたプログラムも今日維持されています。さらなる開発(RPG II、RPG III、RPG/400)の後、より良いRPG IV(ILE RPG)を使用して新しいプロジェクトを作成できるようになりました。

RPGプログラムはプログラムサイクルで処理され、その手順は常に繰り返されます。最初のステップでは、ヘッダーの一般情報( ヘッダ )処理。これに続いて、データレコードとその処理を読み取ります。次のステップは、処理されたデータを発行することです。特定のインジケーター(LRインジケーター)がオンに設定されている場合、プログラムは終了します。インジケータが引き続き設定されている場合、処理の次のデータレコードが準備されます。

after-content-x4

簡単なプログラムは、10の条項のうち5つから来ています。

  • 初め。 ヘッダ – 決定 – 一般的な条件と値を定義します。
  • 2.ファイルの説明(ファイルの説明) – プログラムで使用されているすべてのファイルについて説明します。これには、次の情報が必要です。1。ファイル名、2。ファイルの使用ファイルの3番目の文の長さ、
  • 3.入力(入力仕様) – フィールド、定数、またはデータ構造を定義します。
  • 4.計算(計算決定) – データの処理に役立ちます。順序とそれぞれのコマンドを決定します
  • 5.出力(出力操作) – 出力ファイルのフィールドと文、および出力が実行される条件について説明します。

プログラムサイクルは、それぞれのファイルの処理ルールを引き継ぎます。したがって、プログラマーは、個々のデータレコードへのアクセスを心配する必要はありませんが、これには特定の柔軟性もあります。サイクルの使用は、RPG IIの遺物です。今日のRPGプログラムでは、通常は使用されなくなりました。 RPGは特定の制限の影響も受けました。たとえば、再帰アルゴリズムなど、より複雑な計算を実行することはできませんでした。

RPG IV(ILE RPG)は、IBMによって開発されたプログラミング言語です。略語のILEが表しています 統合言語環境 1993年に導入された開発環境を示します。 ILEで設計された第一言語は、OS/400オペレーティングシステムのV2R3バージョンのILE C/400でした。言語ILE RPG、ILE COBOL/400、およびILE CL(コントロール言語)は、V3R1バージョンでのみ追加されました。 ILEを使用すると、さまざまなプログラミング言語(ILEファミリーの一部である必要がある)で記述されたモジュールで構成されるプログラムを作成することができます。

RPGの後継者として、ILE RPGはいくつかの重要な変更と拡張を提供します。

  • 新しいD決定(定義の決定)は、フィールド、データ構造、または定数を宣言する標準決定です。
  • データベースの読み取りまたは変更のためのSQLコマンドの統合。
  • ソースコードが資本文字で書かれているか小文字で書かれているかは関係ありません。
  • 多くの制限が修正されました。 B.フィールド名の最大文字長の拡張6文字から17文字まで。
  • 日付と時刻の操作の多様なオプション。
  • ポインター指向操作。
  • %トリム – スペースの除去などの多数の統合関数。
  • コンパイラステートメントを介してコラムオリエンテーションを行う必要がなくなる可能性 /無料 (OS/400バージョン5からのみ)
  • ユニコードサポートは継続的に改善されています。たとえば、V5R3から「Unicodefeld =%ucs2(charalito)」、v6r1 “unicodefeld =文字フィールド” “からコードできます。
  • V4R4から、Javaクラスの接続を広範囲にサポートしています。この目的のために、新しいデータ型「オブジェクト」が作成され、プロトタイプの呼び出しがクラスで直接呼び出されます。
  • V5R4から、RPGプログラマーは、新しく作成されたオペレーティングキーXML-INTOおよびXML-SAXを使用して、XMLドキュメントのコンテンツに簡単にアクセスできます。
  • V6R1から、ファイルはローカルで(関数内)定義することもできます。描画変数とデータ構造の制限は、16 MBに引き上げられました。

[ 編集 | ソーステキストを編集します ]

1.ファイルの説明

fdatename+ipeasf ..... l ..... a.e/aeinh。キーワード++
ftest1 eディスクの場合 

この例は、test1ファイルの規定がどのように決定されるかを示しています。 入力ファイルを定義します。 f 完全な手続きファイルを設定します。 H.処理はプログラムサイクルに任されていません。終えた ファイルが外部から記述されていることが判断されます。 ディスク ファイルがハードドライブまたは1回のメモリ上にあることを示します。

RPGは、データベースから非常に優れたサポートを楽しんでいます。
たとえば、キーに関するファイルの特定の文(操作キーチェーン)、および「i」プラットフォーム上のSQLがまだ到達していないパフォーマンスで読み取ることができます。
aの仕様 k 「/出力ユニット」の前の「A」の下にある「キー付きアクセス」の場合。

fdatename+ipeasf ..... l ..... a.e/aeinh。キーワード++
ftest1 e kディスクの場合 

によって ファイルの説明では、コンパイラはファイルで使用可能なすべてのフィールドを定義します。ファイルフィールドとして入力する必要がある補助フィールドを使用する場合は、「等しい」を使用する必要があります。その後、データベースの変更が対応するプログラムのみをコンパイルするだけで十分です。オペレーティングシステムは、「UP -Dateテスト」を発行することにより、古いバージョンのファイルで作成されたプログラムを防ぐため、これは通常必要です。

2.手順、定義規制、およびコンピューティング規制
教員を計算するためのプログラム

h dftactgrp(*no)
H ************************************************
d fak pr 10i 0
D番号10I 0値
D値S 10i 0
D ****************************************
c評価値= fak(5)
c dsply値
c eval *inlr = *on
c *********************************************
P fak b
d fak pi 10i 0
D番号10I 0値
c
c番号= 1の場合
c返品番号
c else
c評価番号= number * fak(number -1)
c返品番号
C Endif
p fak e 

ファクは一緒です Pr 手順として定義されています。 10i 0 リターン値は、長さ10の場所であり、10桁の場所が0であることを示します。 番号 手順の最初のパラメーターです。彼は一緒にいます 価値 値パラメーターとして宣言されています。最後に、手順はメイン計算規定の下で定義する必要があります。

指導によって 評価します フィールドは特定の値に割り当てられます。 dsply プログラムメッセージです。 inlr (lr = lastレコード=最後のデータレコード)は、プログラムが終了したことを示す指標です。

3. RPGフリーフォーマット

DNAME +++++++++++ ETDSVON ++++ bi/L +++ IDG.CCHキーワード++++++++++++++
Dアレイs 10i 0 dim(5)
D K S 10I 0
 /無料

   k = 1〜%elem(array);
     配列(k)= k;
   endfor;

   eval *inlr = *on; // evalを除外することもできます

 /エンドフリー 

この例は、無料形式の使用を示しています。実際の指示は、コンパイラディレクティブ /無料および /終了の間である必要があります。コメントは//で開始されます。

「たとえば、IBMが元々ホールカードの降格用に開発した言語は、Webサービスを提供するための多くのツールを提供します。これもRPGコードに完全にネイティブです。 …RPGの新規は、列1のプログラミング命令に開始が許可され、長さの制限がない「フリーフォーム」でもありますが、古い「固定フォーム」では、列6〜80のコードのみが含まれています。 [4]

(標準のホールカードには80の列があり、列1〜5は元々RPGのライン番号のために予約されていました。)

RPGはもともとIBM 1401用に開発されました。 Systems /3、 /32、 /34、 /36、 /38の場合、拡張機能が何度も作成されており、AS /400、IseriesおよびSystem I(2008年に提示された)のILEコンセプトで予備的なハイライトに到達しました。ただし、Telefunken TR 440、Siemens BS2000、Wang VS、HP3000の実装、およびUNIXベースのシステム(UNIBOL)およびPC(Baby/400、Lattice-RPG)のさまざまなコンパイラもあります。

Linux/aix:「Phoenix informatica bancaria s.p.a.」の以前の「RPG2CPPP」プロジェクト「RPG2CPP」から始まるRPG400翻訳者は、2007年以来イタリアのトレントで開発されており、在来のC + + exs on datおよびaixおよびAIXの在来C + +ソースの形式で関連するCLプログラムを含むRPG400アプリケーションを実現しています。現在(2016年2月現在)、コンパイラはRPG400の約3,000万回のコードラインの適用の約98%を翻訳しています。このプロジェクトにより、RPG400プログラムを作成して実行したシステムで実行できます。コピーステートメント、DDSソース、ライブラリリストは、編集と期間の両方でサポートされています。 MySQLとOracleの両方をデータベースとして使用できます。

  1. 機械的データ処理の履歴。 第1巻、情報処理のサブタイトルIBM百科事典、-IBMフォームD 12-0028(3/91)、見出し140
  2. GüntherSander、Hans Spengler: Hollerith LochkartenマシンのIBMエンタープライズサーバーへのデータ処理の開発。 Self-Published、Böblingen2006、ISBN 3-00-019690-0、p。39。
  3. 「RPG:プラグボードからデータベースへのブリッジ」。の: 機械的データ処理の履歴。 第1巻:情報処理のIBM百科事典、IBMフォームD 12-0028(3/91)、140〜141ページ。
  4. 「パンチカードからWebサービスまで:IBM I 7.3」 ハイズオンライン2016年4月12日
after-content-x4