ILE RPG

ILE RPG

RPG ist eine problemorientierte Programmiersprache für den kaufmännischen Bereich.

Inhaltsverzeichnis

Zweck und Ursprung

RPG steht ursprünglich für Report Program Generator. Die Sprache wurde von IBM ursprünglich für das Erstellen von kaufmännischen Listen (Reports) entwickelt. Ein Compiler für die erste Version erschien 1959. Zu damaliger Zeit arbeitete man mit Tabelliermaschinen und Lochkarten, deshalb war der Sprachaufbau, bevor RPG IV erschien, spaltenorientiert. Die Sprache wird hauptsächlich im Bereich der Großrechner und Minirechner, wie beispielsweise auf dem S/390 oder der AS/400 (iSeries), eingesetzt. Von einer Sprache zur Listenbearbeitung entwickelte sich RPG weiter zu einer Programmiersprache, die alle kaufmännischen Anwendungen abdeckte, inklusive Dialogverarbeitung und Arbeit mit relationalen Datenbanken.

RPG II , RPG III, RPG/400

Programme, die mit RPG geschrieben wurden, pflegt man auch in der heutigen Zeit. Nach Weiterentwicklungen (RPG II , RPG III, RPG/400) können neuere Projekte inzwischen mit dem besseren RPG IV (ILE RPG) geschrieben werden.

RPG-Programme 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 Datensatzes 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 fünf von insgesamt zehn Bestimmungen aus:

  • Header-Bestimmung − Sie legt allgemeine Bedingungen und Werte fest.
  • File Description (Dateibeschreibung) − Sie 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
  • Input (Eingabebestimmung) − Sie legt Felder, Konstanten oder Datenstrukturen fest.
  • Calculation (Rechenbestimmung) – Sie dient der Verarbeitung der Daten. Sie legt die Reihenfolge und die jeweiligen Befehle fest.
  • Output (Ausgabeoperation) − Sie 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 zu kümmern, was jedoch auch eine gewisse Unflexibilität mit sich bringt. Die Verwendung des Zyklus ist ein Relikt aus RPG II. In heutigen RPG-Programmen wird er meist nicht mehr verwendet. RPG war außerdem mit gewissen Einschränkungen behaftet: So war es beispielsweise nicht möglich, komplexere Berechnungen, wie rekursive Algorithmen, auszuführen.

RPG IV (ILE RPG)

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 die Sprachen ILE RPG, ILE COBOL/400 und ILE CL (Control Language) hinzu.

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

  • Die neue D-Bestimmung (Definitionsbestimmung) ist nun die Standardbestimmung für das Deklarieren von Feldern, Datenstrukturen oder Konstanten.
  • Einbindung von SQL-Befehlen zum Lesen bzw Ändern von Datenbanken.
  • 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 17 Zeichen.
  • Vielfältige Möglichkeiten für Datums- und Zeitoperationen.
  • Pointerorientierte Operationen.
  • Eine Vielzahl integrierter Funktion (Build-In-Functions wie 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

Dieses Beispiel zeigt, wie die Bestimmungen für die Datei test1 festgelegt wird. I definiert eine Eingabedatei, F legt eine voll prozedurale Datei fest, d.h. die Verarbeitung wird nicht dem Programmzyklus überlassen. Durch E wird festgelegt, dass die Datei extern beschrieben ist. DISK gibt an, dass die Datei auf der Festplatte oder 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 als Wertparameter deklariert. Die Prozedur muss schließlich unter den Hauptrechenbestimmungen definiert werden.

Durch die Anweisung EVAL werden Feldern bestimmte Werte zugewiesen. DSPLY gibt eine Programmnachricht aus. INLR ist der Indikator, der angibt, dass das Programm beendet ist.

3. RPG-Free-Format

DName+++++++++++ETDsVon++++Bi/L+++IDG.Schlüsselwörter++++++++
D Array           S             10I 0 DIM(5)
D K               S             10I 0
 /FREE

   FOR k = 1 TO %elem(Array);
     Array(k) = k;
   ENDFOR;                  
         
   EVAL *INLR = *ON;             

 /END-FREE   

Dieses Beispiel zeigt die Verwendung des Free-Formats. Die eigentlichen Anweisungen müssen hierbei zwischen den Compiler-Direktiven /FREE und /END-FREE stehen.

Plattformen

RPG wurde ursprünglich für das IBM System/360 entwickelt. Für die Systeme /3, /32, /34, /36, /38 wurden immer wieder Erweiterungen geschaffen, welche schließlich mit dem ILE-Konzept auf der AS/400, iSeries und aktuell dem System-I (vorgestellt 2008) den vorläufigen Höhepunkt erreichten. Es existieren aber auch Implementierungen für Siemens BS2000, WANG VS und HP3000 sowie verschiedene Compiler für unixbasierte Systeme (Unibol) und PC (Baby/400, Lattice-RPG).

Sonstiges

Unter Programmierern kursiert der Scherz, RPG bedeute "Raten, Probieren, Glauben" oder auch "Raten, Probieren, Gewinnen."

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • RPG (Programmiersprache) — RPG ist eine problemorientierte Programmiersprache für den kaufmännischen Bereich. Inhaltsverzeichnis 1 Zweck und Ursprung 2 RPG II, RPG III, RPG/400 3 RPG IV 3.1 Beispiele …   Deutsch Wikipedia

  • Ile — can be different things: *An abbreviation of isoleucine, an amino acid *Ile, a district of Mozambique *Another name for Ilargi, the moon in Basque mythology *Integrated Learning Environment *Integrated Language Environment, on IBM s System i (i5 …   Wikipedia

  • RPG (Role Playing Game) — Jeu de rôle Pour les articles homonymes, voir Jeu de rôle (homonymie). Cet article fait partie de la série …   Wikipédia en Français

  • IBM RPG — Infobox programming language name = RPG Report Program Generator paradigm = Multi paradigm year = 1959 designer = developer = IBM latest release version = RPG IV version 6 release 1 latest release date = release date|2008|1|29 latest test version …   Wikipedia

  • Super Mario RPG — Super Mario RPG: Legend of the Seven Stars Super Mario RPG Éditeur Nintendo Développeur Square Co. Concepteur Yoshihiko Maekawa, Chihiro Fujioka Date de sortie 13 mai 1996 (SNES) Septembre 2007 …   Wikipédia en Français

  • Super Mario RPG: Legend of the seven stars — Super Mario RPG Éditeur Nintendo Développeur Square Co. Concepteur Yoshihiko Maekawa, Chihiro Fujioka Date de sortie 13 mai 1996 (SNES) Septembre 2007 …   Wikipédia en Français

  • Super Mario RPG : Legend of the Seven Stars — Super Mario RPG: Legend of the Seven Stars Super Mario RPG Éditeur Nintendo Développeur Square Co. Concepteur Yoshihiko Maekawa, Chihiro Fujioka Date de sortie 13 mai 1996 (SNES) Septembre 2007 …   Wikipédia en Français

  • Super mario rpg — Super Mario RPG: Legend of the Seven Stars Super Mario RPG Éditeur Nintendo Développeur Square Co. Concepteur Yoshihiko Maekawa, Chihiro Fujioka Date de sortie 13 mai 1996 (SNES) Septembre 2007 …   Wikipédia en Français

  • Super mario rpg: legend of the seven stars — Super Mario RPG Éditeur Nintendo Développeur Square Co. Concepteur Yoshihiko Maekawa, Chihiro Fujioka Date de sortie 13 mai 1996 (SNES) Septembre 2007 …   Wikipédia en Français

  • Super Mario RPG: Legend of the Seven Stars — Super Mario RPG Legend of the Seven Stars Éditeur Nintendo Développeur Square …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”