Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier. RPG steht für Report Program Generator und stellt eine problemorientierte Programmiersprache sowie einen Programmgenerator dar. Sie wurde von IBM für die Arbeit mit Lochkarten entwickelt weswegen der Sprachaufbau auch spaltenorientiert Sie wird hauptsächlich im Bereich der Großrechner und Minirechner eingesetzt wie z.B. auf dem S/390 oder der AS/400 ( iSeries ). RPG dient im kaufmännischen Umfeld der d.h. die Hauptaufgabe besteht im Lesen Berechnen formatierten Ausgeben von Datenbankdateien.
Programme die mit RPG geschrieben wurden man auch noch in der heutigen Zeit. Weiterentwicklungen (RPG I - IV) werden neuere inzwischen mit dem besseren ILE RPG geschrieben.
Programme dieser Sprache werden in einem verarbeitet dessen Schritte sich ständig wiederholen. Im Schritt werden allgemeine Informationen der Kopfzeile ( Header ) verarbeitet. Danach folgt das Lesen eines und dessen Verarbeitung. Der nächste Schritt ist Ausgabe der verarbeiteten Daten. Ist danach ein Indikator (der LR-Indikator) auf ON gesetzt so das Programm beendet. Falls der Indikator weiterhin OFF gesetzt ist wird der nächste Datensatz die Verarbeitung vorbereitet.
Ein einfaches Programm kommt mit 5 insgesamt 10 Bestimmungen aus:
Header
File Description (Dateibeschreibung)
Input (Eingabe)
Calculation (Berechnung)
Output (Ausgabe)
Die Header -Bestimmung legt allgemeine Bedingungen und Werte fest.
Die Dateibeschreibung beschreibt alle vom Programm verwendeten Dateien. werden folgende Informationen benötigt: 1. Dateiname 2. der Dateiverwendung 3. Satzlänge in der Datei Eingabe- oder Ausgabeeinheit
Die Rechenbestimmung dient der Verarbeitung der Daten. Sie die Reihenfolge und die jeweiligen Befehle fest.
Die Ausgabeoperation beschreibt die Felder und Sätze der sowie die Bedingung unter der die Ausgabe wird.
Der Programmzyklus übernimmt die Verarbeitungsregeln für jeweilige Datei. Der Programmierer braucht sich also um den Zugriff auf jeden einzelnen Datensatz was jedoch auch eine gewisse Unflexibilität mit bringt. Des weiteren ist es nicht möglich Berechnungen wie z.B. rekursive Algorithmen auszuführen
ILE RPG ist eine von IBM entwickelte Programmiersprache. Abkürzung ILE steht für Integrated Language Environment und bezeichnet eine im Jahr 1993 eingeführte Entwicklungsumgebung. Die erste Sprache die ILE konzipiert wurde war ILE C/400 für Version V2R3 des Betriebssystems OS/400 . Erst in der Version V3R1 kamen wie ILE RPG ILE COBOL/400 und ILE (Control Language) hinzu.
ILE RPG ist der Nachfolger von und bietet einige erhebliche Veränderungen und Erweiterungen:
Die neue D-Bestimmung (Definitionsbestimmung) ist nun Standardbestimmung für das Deklarieren von Feldern Datenstrukturen Konstanten.
Es ist gleichgültig ob der Quellcode Groß- oder Kleinbuchstaben geschrieben wird.
Etliche Beschränkungen wurden korrigiert z.B. die für die maximale Zeichenlänge von Feldnamen von Zeichen auf 10 Zeichen.
Vielfältige Möglichkeiten für Datums- und Zeitoperationen.
Eine Vielzahl integrierter Funktion (z.B. %trim Entfernen von Leerzeichen).
Möglichkeit nicht mehr spaltenorientiert arbeiten zu durch die Compiler -Anweisung /free (erst ab OS/400-Version 5)
Beispiele:
1. Dateibeschreibung
FDateiname+IPEASF.....L.....A.E/AEinh.Schlüsselwörter++ Ftest1 IF E DISK
Diese Beispiel legt die Bestimmungen für Datei test1 fest. I definiert eine Eingabedatei F legt eine voll prozeduale Datei fest die Verarbeitung wird nicht dem Programmzyklus überlassen. E legt fest dass diese Datei extern ist. DISK legt fest dass die Datei auf Festplatte oder bzw. im einstufigen Speicher liegt.
2. Prozeduren Definitionsbestimmungen und Rechenbestimmungen Programm zur Berechnung der Fakultät
H DFTACTGRP(*NO) DName+++++++++++ETDsVon++++Bi/L+++IDG.Schlüsselwörter++++++++ D Fak PR 0 D Zahl 10I 0 VALUE D S 10I 0 CL0N01Faktor1+++++++Opcode&ExtErweiterter-Faktor2++++++++++++ C EVAL Wert Fak(5) C DSPLY Wert C EVAL *INLR *ON P Fak B D Fak PI 0 D Zahl 10I 0 VALUE C Zahl = 1 C RETURN Zahl C C EVAL Zahl = Zahl * Fak(Zahl 1) C RETURN Zahl C ENDIF P E
Fak wird mit PR als Prozedur definiert. Das I gibt an dass es sich beim um eine ganze Zahl handelt die 10 lang ist und 0 Dezimalstellen besitzt. Zahl ist der erste Parameter der Prozedur. wird mit VALUE deklariert damit dieser ein Wertparameter ist. Die Prozedur muss dann schließlich dem eigentlichen Quellcode geschrieben werden.
EVAL weist Feldern bestimmte Werte zu. DSPLY gibt eine Programmnachricht aus. INLR ist der Indikator der angibt dass Programm beendet ist.