Zum Inhalt springen

RPG (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. März 2004 um 11:17 Uhr durch Pikachu (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.


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 ist. 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 Datenlistenbearbeitung, d.h. die Hauptaufgabe besteht im Lesen, Berechnen und formatierten Ausgeben von Datenbankdateien.

Programme, die mit RPG geschrieben wurden, pflegt man auch noch in der heutigen Zeit. Nach Weiterentwicklungen (RPG I - IV) werden neuere Projekte inzwischen mit dem besseren ILE RPG geschrieben.

Programme dieser Sprache werden in einem Programmzyklus verarbeitet, dessen Schritte sich ständig wiederholen. Im ersten Schritt werden allgemeine Informationen der Kopfzeile (Header) verarbeitet. Danach folgt das Lesen eines Datansatzes und dessen Verarbeitung. Der nächste Schritt ist die Ausgabe der verarbeiteten Daten. Ist danach ein bestimmter Indikator (der LR-Indikator) auf ON gesetzt, so wird das Programm beendet. Falls der Indikator weiterhin auf OFF gesetzt ist, wird der nächste Datensatz für die Verarbeitung vorbereitet.

Ein einfaches Programm kommt mit 5 von 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. Dafür werden folgende Informationen benötigt: 1. Dateiname, 2. Art der Dateiverwendung 3. Satzlänge in der Datei, 4. Eingabe- oder Ausgabeeinheit

Die Eingabebestimmung legt Felder, Konstanten oder Datenstrukturen fest.

Die Rechenbestimmung dient der Verarbeitung der Daten. Sie legt die Reihenfolge und die jeweiligen Befehle fest.

Die Ausgabeoperation beschreibt die Felder und Sätze der Ausgabedateien, sowie die Bedingung unter der die Ausgabe durchgeführt wird.


Der Programmzyklus übernimmt die Verarbeitungsregeln für die jeweilige Datei. Der Programmierer braucht sich also nicht um den Zugriff auf jeden einzelnen Datensatz kümmern, was jedoch auch eine gewisse Unflexibilität mit sich bringt. Des weiteren ist es nicht möglich komplexere Berechnungen wie z.B. rekursive Algorithmen auszuführen


ILE RPG ist eine von IBM entwickelte Programmiersprache. Die Abkürzung ILE steht für Integrated Language Environment und bezeichnet eine im Jahr 1993 eingeführte Entwicklungsumgebung. Die erste Sprache die mit ILE konzipiert wurde, war ILE C/400 für die Version V2R3 des Betriebssystems OS/400. Erst in der Version V3R1 kamen Sprachen wie ILE RPG, ILE COBOL/400 und ILE CL (Control Language) hinzu.

ILE RPG ist der Nachfolger von RPG und bietet einige erhebliche Veränderungen und Erweiterungen:

  • Die neue D-Bestimmung (Definitionsbestimmung) ist nun die Standardbestimmung für das Deklarieren von Feldern, Datenstrukturen oder Konstanten.
  • Es ist gleichgültig ob der Quellcode in Groß- oder Kleinbuchstaben geschrieben wird.
  • Etliche Beschränkungen wurden korrigiert, z.B. die Erweiterung für die maximale Zeichenlänge von Feldnamen von 6 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 müssen 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 die Datei test1 fest. I definiert eine Eingabedatei, F legt eine voll prozeduale Datei fest, d.h. die Verarbeitung wird nicht dem Programmzyklus überlassen. E legt fest, dass diese Datei extern beschrieben ist. DISK legt fest, dass die Datei auf der 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            10I 0                        
D  Zahl                         10I 0 VALUE                  
D Wert            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            10I 0                        
D  Zahl                         10I 0 VALUE                  
C                   IF        Zahl = 1                       
C                   RETURN    Zahl                           
C                   ELSE                                     
C                   EVAL      Zahl = Zahl * Fak(Zahl - 1)    
C                   RETURN    Zahl
C                   ENDIF   
P Fak             E 


Fak wird mit PR als Prozedur definiert. Das I gibt an, dass es sich beim Rückgabewert um eine ganze Zahl handelt, die 10 Stellen lang ist und 0 Dezimalstellen besitzt. Zahl ist der erste Parameter der Prozedur. Er wird mit VALUE deklariert, damit dieser ein Wertparameter ist. Die Prozedur muss dann schließlich unter dem eigentlichen Quellcode geschrieben werden.

EVAL weist Feldern bestimmte Werte zu. DSPLY gibt eine Programmnachricht aus. INLR ist der Indikator, der angibt, dass das Programm beendet ist.