RPG (Report Program Generator) wurde 1959 von IBM für den IBM 1401 entwickelt, um Geschäftsberichte aus Dateien zu erzeugen. Daraus entstand eine der langlebigsten Programmiersprachen überhaupt: Über RPG II, RPG III und RPG/400 führt die Linie zum modernen ILE RPG (RPG IV) auf IBM i (AS/400) — dort wird bis heute produktiv entwickelt.

Klassische Form

RPG war lange spaltenorientiert: Ein Programm bestand aus Spezifikations-Formularen (Header, File, Calculation, Output), bei denen jede Spalte eine Bedeutung hatte. Moderne **FREE-Quellen erlauben frei formatierte Anweisungen.

**FREE
ctl-opt dftactgrp(*no);
dcl-s name char(20);
dcl-s age packed(3);

dsply 'Name:' ' ' name;
age = age + 1;
*inlr = *on;   // Last Record: Programm beenden

Wichtige Operationen

  • CHAIN — wahlfreier Zugriff über Index oder Schlüssel; READ/READE/READP sequenziell lesen
  • WRITE/UPDATE/DELETE — Datensätze schreiben, ändern, löschen
  • ADD/SUB/MULT/DIV — arithmetische Operationen im klassischen Berechnungsformular
  • EVAL — moderne Ausdrücke; EXSR ruft eine Subroutine auf (BEGSR/ENDSR)
  • Indikatoren *IN01 bis *IN99 — Flags für Bedingungen und Steuerung (z.B. *INLR für Last Record)
  • Programmzyklus — Detail-, Total- und Output-Phasen laufen automatisch pro Datensatz ab

Praxis

ILE RPG arbeitet eng mit DDS-Dateibeschreibungen und eingebettetem SQL zusammen und wird für ERP-, Logistik- und Finanzanwendungen auf IBM i eingesetzt.

Verwandte Einträge: PL/I-Befehle (Mainframe-Schwester), COBOL-Befehle (Geschäftsanwendungen), SQL-Befehle (eingebettete Datenbankabfragen), Rexx-Befehle (IBM-Skriptsprache).