www.wikidata.de-de.nina.az
Report Program Generator RPG ist eine Programmiersprache fur den kaufmannischen Bereich Die Sprache wurde von IBM zunachst fur das Erstellen von kaufmannischen Listen Reports entwickelt Inhaltsverzeichnis 1 Geschichte 2 RPG II RPG III RPG 400 3 RPG IV 3 1 Beispiele 4 RPG Jahr 2016 5 Plattformen 6 Weblinks 7 EinzelnachweiseGeschichte BearbeitenDie von IBM verfasste Geschichte der maschinellen Datenverarbeitung beschreibt RPG als Brucke von der Stecktafel zur Datenbank 1 Sie ermoglichte daher den Ubergang von der Tabelliermaschine Stecktafel zum Reportgenerator wozu als Beispiel das System IBM 1401 herangezogen wurde Ahnlich argumentieren die ehemaligen IBM Mitarbeiter Gunther Sander Hans Spengler bei ihrer Betrachtung von RPG Um die grosse Anzahl der Umsteiger von Lochkartenmaschinen auf EDV Systeme insbesondere auf die IBM 1400 Serie zu unterstutzen entwickelte IBM den Report Program Generator RPG Dies ist eine Beschreibungssprache mit der der Listenaufbau von Tabelliermaschinenanwendungen beschrieben werden konnte und einem Ubersetzungsprogramm das aus den abgelochten Beschreibungsformularen ein 1401 Programm erzeugte 2 oder hier Um den Umstieg von traditioneller Lochkartenverarbeitung zu der elektronischen Datenverarbeitung zu erleichtern wurde die Hochsprache RPG entwickelt und war auf vielen IBM Computern ab den 1960er Jahren verfugbar Ihre Syntax war stark an die Arbeitsweise von Tabelliermaschinen angelehnt doch die muhsame Verkabelung auf Steckbrettern war dem Schreiben von Sourcecode und Kompilieren gewichen 3 Zu damaliger Zeit arbeitete man mit Tabelliermaschinen und Lochkarten in der Datenverarbeitung deshalb war der Sprachaufbau bevor die Version RPG IV erschien spaltenorientiert Abgebildet auf Gruppenwechsel Die Sprache wird hauptsachlich im Bereich der Grossrechner Minirechner gleich der mittleren Datentechnik wie beispielsweise auf dem S 390 oder der AS 400 System i eingesetzt Von einer Sprache zur Listenbearbeitung entwickelte sich RPG weiter zu einer Programmiersprache die alle kaufmannischen Anwendungen abdeckte inklusive Dialogverarbeitung und Arbeit mit relationalen Datenbanken RPG II RPG III RPG 400 BearbeitenProgramme die mit RPG geschrieben wurden pflegt man auch in der heutigen Zeit Nach Weiterentwicklungen RPG II RPG III RPG 400 konnen neuere Projekte inzwischen mit dem besseren RPG IV ILE RPG geschrieben werden RPG Programme werden in einem Programmzyklus verarbeitet dessen Schritte sich standig wiederholen Im ersten Schritt werden allgemeine Informationen der Kopfzeile Header verarbeitet Danach folgt das Lesen eines Datensatzes und dessen Verarbeitung Der nachste 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 nachste Datensatz fur die Verarbeitung vorbereitet Ein einfaches Programm kommt mit funf von insgesamt zehn Bestimmungen aus 1 Header Bestimmung Sie legt allgemeine Bedingungen und Werte fest 2 File Description Dateibeschreibung Sie beschreibt alle vom Programm verwendeten Dateien Dafur werden folgende Informationen benotigt 1 Dateiname 2 Art der Dateiverwendung 3 Satzlange in der Datei 3 Input Eingabebestimmung Sie legt Felder Konstanten oder Datenstrukturen fest 4 Calculation Rechenbestimmung Sie dient der Verarbeitung der Daten Sie legt die Reihenfolge und die jeweiligen Befehle fest 5 Output Ausgabeoperation Sie beschreibt die Felder und Satze der Ausgabedateien sowie die Bedingung unter der die Ausgabe durchgefuhrt wird Der Programmzyklus ubernimmt die Verarbeitungsregeln fur die jeweilige Datei Der Programmierer braucht sich also nicht um den Zugriff auf jeden einzelnen Datensatz zu kummern was jedoch auch eine gewisse Unflexibilitat 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 ausserdem mit gewissen Einschrankungen behaftet So war es beispielsweise nicht moglich komplexere Berechnungen wie rekursive Algorithmen auszufuhren RPG IV BearbeitenRPG IV ILE RPG ist eine von IBM entwickelte Programmiersprache Die Abkurzung ILE steht fur Integrated Language Environment und bezeichnet eine im Jahr 1993 eingefuhrte Entwicklungsumgebung Die erste Sprache die mit ILE konzipiert wurde war ILE C 400 fur 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 Mit ILE ist es moglich ein Programm zu erstellen das aus Modulen besteht die in unterschiedlichen Programmiersprachen die aber der ILE Familie angehoren mussen geschrieben wurden ILE RPG bietet als Nachfolger von RPG einige erhebliche Veranderungen und Erweiterungen Die neue D Bestimmung Definitionsbestimmung ist nun die Standardbestimmung fur das Deklarieren von Feldern Datenstrukturen oder Konstanten Einbindung von SQL Befehlen zum Lesen bzw Andern von Datenbanken Es ist gleichgultig ob der Quellcode in Gross oder Kleinbuchstaben geschrieben wird Etliche Beschrankungen wurden gelockert z B wurde die maximale Lange der Feldnamen von 6 Zeichen auf 17 Zeichen vergrossert Vielfaltige Moglichkeiten fur Datums und Zeitoperationen Pointerorientierte Operationen Eine Vielzahl integrierter Funktionen wie beispielsweise trim entfernen von Leerzeichen Moglichkeit nicht mehr spaltenorientiert arbeiten zu mussen durch die Compiler Anweisung FREE erst ab OS 400 Version 5 Unicode Unterstutzung wird laufend verbessert beispielsweise kann man ab V5R3 UnicodeFeld UCS2 ZeichenFeld kodieren ab V6R1 reicht UnicodeFeld ZeichenFeld Ab V4R4 gibt es umfassende Unterstutzung fur die Anbindung von Java Klassen Dazu wurde der neue Datentyp Objekt geschaffen und durch prototypisierten CALL konnen Java Methoden in Klassen direkt aufgerufen werden Ab V5R4 konnen RPG Programmierer mit den neu geschaffenen Operationsschlusseln XML INTO und XML SAX bequem auf Inhalte von XML Dokumenten zugreifen Ab V6R1 konnen Dateien auch lokal in Funktionen definiert werden Die Limits fur Zeichenvariablen und Datenstrukturen wurden auf 16 MB angehoben Beispiele Bearbeiten 1 Dateibeschreibung FDateiname IPEASF L A E AEinh Schlusselworter Ftest1 IF E DISK Dieses Beispiel zeigt wie die Bestimmungen fur die Datei test1 festgelegt wird I definiert eine Eingabedatei F legt eine voll prozedurale Datei fest d h die Verarbeitung wird nicht dem Programmzyklus uberlassen Durch E wird festgelegt dass die Datei extern beschrieben ist DISK gibt an dass die Datei auf der Festplatte oder im einstufigen Speicher liegt RPG geniesst eine ausserordentlich gute Unterstutzung der Datenbank So ist es beispielsweise moglich einen bestimmten Satz einer Datei uber ihren Key zu lesen Operationsschlussel CHAIN und das in einer Performance die SQL auf der Plattform i bislang noch nicht erreicht Dazu reicht die Angabe eines K fur keyed access unter dem A vor der Ein Ausgabe Einheit FDateiname IPEASF L A E AEinh Schlusselworter Ftest1 IF E K DISK Durch das E in der Dateibeschreibung definiert der Compiler alle in der Datei vorhandenen Felder wenn Hilfsfelder verwendet werden die genau so wie die Dateifelder typisiert sein sollen ist LIKE zu verwenden Dann reicht es bei Datenbankanderungen oft nur das entsprechende Programm zu kompilieren Normalerweise ist das ohnehin notig da das Betriebssystem den Aufruf von Programmen die mit einer alteren Version der Datei erstellt wurden mit der Ausgabe einer Aktualitatsprufung verhindert 2 Prozeduren Definitionsbestimmungen und Rechenbestimmungen Programm zur Berechnung der Fakultat H DFTACTGRP NO H D Fak PR 10I 0 D Zahl 10I 0 VALUE D Wert S 10I 0 D C EVAL Wert Fak 5 C DSPLY Wert C EVAL INLR ON C P Fak B D Fak PI 10I 0 D Zahl 10I 0 VALUE C 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 10I 0 gibt an dass es sich beim Ruckgabewert 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 schliesslich unter den Hauptrechenbestimmungen definiert werden Durch die Anweisung EVAL werden Feldern bestimmte Werte zugewiesen DSPLY gibt eine Programmnachricht aus INLR LR last record letzter Datensatz ist der Indikator der angibt dass das Programm beendet ist 3 RPG Free Format DName ETDsVon Bi L IDG Schlusselworter 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 das EVAL konnte man auch weglassen END FREE Dieses Beispiel zeigt die Verwendung des Free Formats Die eigentlichen Anweisungen mussen hierbei zwischen den Compiler Direktiven FREE und END FREE stehen Kommentare werden mit eingeleitet RPG Jahr 2016 Bearbeiten Die Sprache die IBM ursprunglich fur Lochkarten Umsteiger entwickelt hatte stellt zum Beispiel eine Reihe von Werkzeugen bereit um Webservices bereitzustellen jetzt auch komplett nativ in RPG Code Neu in RPG ist auch die Free Form in der Programmieranweisungen in Spalte 1 beginnen durfen und keine Langenbeschrankung haben wahrend in der alten Fixed Form nur die Spalten 6 bis 80 Code enthalten durfte 4 Eine Standard Lochkarte hatte 80 Spalten die Spalten 1 5 waren im RPG ursprunglich fur die Zeilennummerierung reserviert Plattformen BearbeitenRPG wurde ursprunglich fur die IBM 1401 entwickelt Fur die Systeme 3 32 34 36 38 wurden immer wieder Erweiterungen geschaffen welche schliesslich mit dem ILE Konzept auf der AS 400 iSeries und dem System i vorgestellt 2008 den vorlaufigen Hohepunkt erreichten Es existieren aber auch Implementierungen fur Telefunken TR 440 Siemens BS2000 WANG VS und HP3000 sowie verschiedene Compiler fur unixbasierte Systeme Unibol und PC Baby 400 Lattice RPG Linux AIX Ausgehend von dem ehemals offentlich zugangigen Projekt RPG2CPP von Edgar Hermanns wird seit 2007 bei der Firma Phoenix Informatica Bancaria S p A im italienischen Trient ein RPG400 zu C Ubersetzer entwickelt der RPG400 Anwendungen inklusive der zugehorigen CL Programme in Form nativer C Quellen auf Linux und AIX lauffahig macht Derzeit Stand Februar 2016 ubersetzt der Compiler rund 98 des Anwendungsbestandes der aus rund 30 Millionen Code Zeilen in RPG400 besteht Das Projekt ermoglicht es weiter RPG400 Programme zu schreiben und auf den genannten Systemen laufen zu lassen Dabei werden COPY Statements DDS Quellen und Bibliothekslisten sowohl bei der Kompilierung als auch zur Laufzeit unterstutzt Als Datenbank kann dabei sowohl MySQL als auch Oracle eingesetzt werden Weblinks BearbeitenRPG II System 36 Compatible RPG II User s Guide and Reference PDF 3 5 MB RPG IV ILE RPG ILE RPG Referenz V7R1 RPG IV The RPG IV Developer Network IBM Information Center V5R4 RPGPGM COM Eine umfangreiche Informationsquelle mit Beispielen fur RPG Code und zugehoriger Programmierung in englischer SpracheEinzelnachweise Bearbeiten Die Geschichte der maschinellen Datenverarbeitung Band 1 Untertitel IBM Enzyklopadie der Informationsverarbeitung IBM Form D 12 0028 3 91 Uberschrift Seite 140 Gunther Sander Hans Spengler Die Entwickelung der Datenverarbeitung von Hollerith Lochkartenmaschinen zu IBM Enterprise Servern Selbstverlag Boblingen 2006 ISBN 3 00 019690 0 S 39 RPG Brucke von der Stecktafel zur Datenbank In Die Geschichte der maschinellen Datenverarbeitung Band 1 IBM Enzyklopadie der Informationsverarbeitung IBM Form D 12 0028 3 91 Seite 140 141 Von Lochkarten zu Webservices IBM i 7 3 Heise online 12 April 2016 Abgerufen von https de wikipedia org w index php title RPG Programmiersprache amp oldid 235601449