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/READPsequenziell lesenWRITE/UPDATE/DELETE— Datensätze schreiben, ändern, löschenADD/SUB/MULT/DIV— arithmetische Operationen im klassischen BerechnungsformularEVAL— moderne Ausdrücke;EXSRruft eine Subroutine auf (BEGSR/ENDSR)- Indikatoren
*IN01bis*IN99— Flags für Bedingungen und Steuerung (z.B.*INLRfü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).