RPG ist ein High-Level-Programmiersprache für Business-Anwendungen. RPG ist ein IBM-eigene Sprache und seine spätere Versionen sind nur auf IBM i oder OS / 400-basierte Systeme zur Verfügung.
Es hat eine lange Geschichte, nachdem sie von IBM im Jahr 1959 als Report Program Generator entwickelt - ein Werkzeug, um Lochkartenverarbeitung auf dem IBM 1401 dann RPG II für das IBM System / 3 in den späten 1960er Jahren aktualisiert replizieren, und da in entwickelt ein HLL entspricht COBOL und PL / I.
Es bleibt eine beliebte Programmiersprache auf dem Betriebssystem IBM i, die auf IBM Power i Plattform-Hardware läuft. Die aktuelle Version, RPG IV, bietet eine moderne Programmierumgebung.
Überblick
Ein RPG-Programm einmal in der Regel mit Dateispezifikationen gestartet und listet alle Dateien, auf die geschrieben, gelesen oder aktualisiert werden, gefolgt von der Datendefinition Daten enthält Programmelemente wie Datenstrukturen und dimensionale Arrays, ähnlich wie ein Abschnitt "Working-Storage" von a COBOL-Programm oder "var" Aussagen in Pascal. Dies wird durch Berechnung Spezifikationen, die die ausführbare Anweisungen enthalten, gefolgt. Ausgangsspezifikationen können folgen, die verwendet werden können, um das Layout der anderen Dateien oder Berichte. Alternativ-Dateien, einige Datenstrukturen und Berichte extern definiert werden, größtenteils entfällt die Notwendigkeit, Hand-Code Eingangs- und Ausgangsspezifikationen.
Jeden RPG-Programm führt innerhalb von einer stillschweigenden Schleife, die das Programm auf jeden Datensatz einer Datei anwenden können: In den frühen Tagen des RPG, wurde seine große Stärke als Programmzyklus bekannt. Zu dieser Zeit würde jeder Datensatz für jede Zeile im Programm, die auf der Platte handeln würde, oder nicht, basierend darauf, ob diese Linie sei ein "Indikator" auf "On" oder "aus" aus einer Reihe von logischen Variablen nummeriert verglichen werden 01-99 für benutzerdefinierte Zwecke oder andere kleinere Sets basierend auf Rekord, Feld oder Bericht Verarbeitungsfunktionen. Das Konzept der Ebene Pausen und passenden Datensätze ist einzigartig in der RPG II Sprache, und war ursprünglich mit Kartenlesern im Verstand entwickelt.
Seit der Einführung des Systems 38 1979 esten RPG Programmierer eingestellt Verwendung des Zyklus für die Steuerung der Programmablauf mit Standard-Schleifenkonstruktionen, obwohl IBM hat weiterhin eine Rückwärtskompatibilität für den Zyklus bereitzustellen.
Geschichte
RPG ist eine der wenigen Sprachen für Lochkartenmaschinen, die noch heute gebräuchlichen erstellt. Dies liegt daran, die Sprache hat sich im Laufe der Zeit weiterentwickelt. Es wurde ursprünglich von IBM im Jahre 1959 entwickelt, der Name Report Program Generator beschreibend sei der Zweck der Sprache aus: Erstellung von Berichten von Datendateien, einschließlich der passenden Datensatz und Sub-Gesamtberichte.
FARGO war der Vorgänger von RPG auf der IBM 1401. Beide Sprachen wurden bestimmt, um eine einfache Übergang für IBM Tabelliermaschine Einheit Rekord Ausrüstung Techniker zu den dann neuen Computern zu erleichtern.
Tab Maschinentechniker wurden Einstecken Drähte in Schalttafeln zum Eingang, Ausgang, Steuerung und Counter-Operationen zu implementieren gewöhnt. Tab-Maschinen-Programme wurden von Impulsen in einem Maschinenzyklus emittierten ausgeführt wird; daher FARGO und RPG emuliert den Begriff des Maschinenzyklus mit dem Programmzyklus. RPG überlegen war und ersetzt FARGO als Report-Generator Programm der Wahl schnell.
Die alternativen Sprachen in der Regel zu dem Zeitpunkt verfügbar waren, Assembler, COBOL oder FORTRAN. COBOL war eine natürliche Sprache artigen Business-orientierten Sprache und FORTRAN war eine Sprache, die mathematische Anwendungen erleichtert. Andere Sprachen der Ära enthalten ALGOL und Autocodierer und ein paar Jahre später PL / I. Assembler und COBOL waren in Mainframe-Geschäftstätigkeiten und RPG häufiger von Kunden, die sich im Übergang von Tabellieren Anlagen wurden verwendet, häufiger.
Sprachevolution
RPG II wurde mit dem System / 3-Serie von Computern eingeführt. Es wurde später System / 32-System / 34 und System / 36 verwendet wird, mit einer verbesserten Version der Sprache. RPG II war auch für größere Systeme, einschließlich der IBM System / 370-Mainframe mit DOS / VSE vorhanden. ICL produzierte auch eine Fassung auf ihrer VME / K-Betriebssystem.
RPG III wurde für die IBM System / 38 und Nachfolge die AS / 400 erstellt. RPG III deutlich wich von der Originalsprache und bietet moderne strukturierte Konstrukte wie IF-ENDIF Blöcke, DO-Schleifen und Unterprogramme. RPG III war auch für größere Systeme, einschließlich der IBM System / 370-Mainframe mit OS / VS1 zur Verfügung. Es war auch von Unisys für den VS / 9-Betriebssystem auf der UNIVAC Serie 90 Mainframes läuft.
DE / RPG oder Data Entry RPG war ausschließlich auf der IBM 5280-Serie von Dateneingabe-Arbeitsstationen in den frühen 80er Jahren zur Verfügung. Es war ähnlich wie RPG III, aber ohne externe Datenbeschreibungen, um Daten wie auf der IBM System / 38 und seine Nachfolger zu beschreiben. Stattdessen musste der DDS Teil in die RPG Quelle selbst enthalten sein.
RPG / 400 war wirksam RPG III läuft auf AS / 400. IBM umbenannt RPG-Compiler als "RPG / 400", aber zum Zeitpunkt ihrer Einführung an die RPG III Compiler auf System / 38 identisch war. Das Rebranding erfolgte zwischen dem früheren CISC auf dem beige-Boxen auf die spätere, "schneller" RISC, in der Regel auf den schwarzen Servern zu unterscheiden. Praktisch alle IBM Produkte wurden als xxx / 400 umbenannt und die RPG-Compiler war keine Ausnahme. RPG III mit dem RPG / 400-Compiler angeboten nichts Neues für die RPG III Sprache kompiliert, bis IBM begann mit der Entwicklung von neuen Operationscodes, wie zB SCAN, CAT und XLATE nach mehreren Jahren der AS / 400-Verfügbarkeit. Diese Verbesserungen, um RPG III waren in der IBM System / 38-Version von RPG III nicht verfügbar.
RPG IV wurde im Jahr 1994 veröffentlicht und der Name offiziell nicht mehr ein initialism. RPG IV bot eine größere Vielfalt von Ausdrucksformen innerhalb ihres erweiterten Factor-2 Rechenvorschrift, und im späteren Leben, seinem freien forma Berechnung Spezifikationen und Verfahren Syntax. RPG IV ist die einzige Version von RPG von IBM in seiner langen Reihe der Nachfolger der AS / 400-System unterstützt.
RPG IV
Im Jahr 2001 mit der Veröffentlichung von OS / 400 V5R1, bot RPG IV größere Freiheit für die Berechnungen als durch die Gesamt Factor-2 Berechnung Spezifikation angeboten: eine Freitext-fähigen Quelleintrag, als eine Alternative zu der ursprünglichen Spalte abhängige Quelle Format. Der "/ FREE" Berechnung nicht den Operationscode benötigen, um in einer bestimmten Spalte platziert werden; der Operationscode ist den EVAL und CALLP Operationen; und die Syntax der Regel mehr ähnelt, dass der Mainstream, Allzweck-Programmiersprachen. Bis Oktober 2013 wird die freien Format nur für die Rechenvorschriften angewandt. Mit dem V7R1 TR7 Upgrade auf die Sprache, sind die "/ frei" und "/ Ende-free" Berechnungen nicht mehr notwendig, und die Sprache ist endlich gebrochen, die Bindungen an Lochkarten.
Heute ist RPG IV eine robustere Sprache. Bearbeiten kann immer noch über den einfachen Green-Screen-Editor durchgeführt werden oder es kann über den PC mit Hilfe von IBM WebSphere Development Studio, jetzt unter dem Namen RDi eine maßgeschneiderte Implementierung von Eclipse bearbeitet werden. IBM wird kontinuierlich erweitert seine Fähigkeiten und das Hinzufügen von mehr integrierte Funktionen. Es hat die Fähigkeit, um Java-Objekte und i5 / OS APIs verbinden; es kann verwendet werden, um CGI-Programme mit Hilfe von IBM Cgidev2 Web Toolkit zu schreiben, die Cozzi Apptools, CGILIB das RPG Toolbox und anderen kommerziellen Web-fähigen Pakete. Selbst mit den Veränderungen, die ein hohes Maß an Abwärtskompatibilität, so dass ein RPG-Programm vor 37 Jahren geschrieben, heute mit wenig oder keiner Änderung führen konnte behält er.
Die SQL-Precompiler ermöglicht aktuelle RPG-Entwickler die Vorteile der IBM kostenbasierten SQE zu nehmen. Mit dem traditionellen F-Spec nähern Entwickler mussten eine bestimmte Zugriffspfad zu einem Datensatz zu identifizieren, jetzt können sie Standard-Embedded SQL-Anweisungen direkt im Programm zu implementieren. Wenn zusammengestellt, die SQL-Precompiler transformiert die ungültigen eingebetteten SQL-Anweisungen in gültige RPG Aussagen, die die Datenbankmanager-Programme, die letztlich Umsetzung der Abfrageanforderung rufen.
Im Jahr 2006 wurde OS / 400 i5 / OS, mit der neuen IBM System i5-Branding-Initiative entsprechen umbenannt; die 5 wurde später zu Gunsten von nur System i gesunken. Im März 2008 i5 / OS wurde IBM i als Teil der Power Systems Konsolidierung von System i und System p-Produktlinien umbenannt. Die neue Power Systems auch annehmen Mainstream-Versionsnummern, und ersetzen Sie 6.1 für die zwanzig Jahre alte V1R1M0 Notation. Die neueste Version wird jetzt als IBM i 7.2 bezeichnet und unterstützt den RPG IV Sprache, ebenso wie viele andere. WebSphere Development Studio Client wird jetzt als Rational Developer for i bezeichnet, von denen drei Produktstufen zur Verfügung. Sie werden als Rational Developer for i, RDi Service Oriented Architecture und Rational Application Developer. Das neue Lineup bietet in mehr granulare Verpackungs alle Entwicklungs-Tools und Support zuvor von WDSC und WDSC Advanced Edition angeboten.
Die Sprache wird auf dem EBCDIC-Zeichensatz basiert, sondern unterstützt auch UTF-8, UTF-16 und viele andere Zeichensätze. Die thread Aspekte der Sprache werden von einigen als eigenwillige wie der Compiler-Team hat Themen, indem jeder Thread seinen eigenen statischen Speicher, anstatt machen das RPG-Laufzeitumgebung einspringenden gerichtet. Dies wurde festgestellt, um die Unterscheidung zwischen einem Faden und einem Verfahren durcheinander.
RPG Open Access
Rpg Ausgabe: im Jahr 2010 mit dem vollständigen Namen der Rational Open Access gestartet.
Nach seiner Einführung beschriebenen IBM i Chief Architect Steve wird es als eine "Verbesserung, die wirklich ist eine architektonische Veränderung, die RPG eröffnet ganz neue Einsatzmöglichkeiten. Und es ist, die für die Gemeinschaft von IBM i, unseren Freunden in IBM Rational und mehrere ISVs gebracht die mit IBM gearbeitet habe, um dem Boden ausgeführt. Die Idee hinter der neuen Funktion ist es, die Notwendigkeit für alle Ausgabe von RPG-Programme zu entfernen, um in den begrenzten 5250 Datenstrom gezwungen werden. Stattdessen kann es zu Handler übergeben werden, die . kann es in irgendeiner Weise der Hundeführer will verwandeln Wickeln Sie es in XML, legen Sie sie in das Format von einem marktgängigen Einheit erforderlich, stellen Sie eine Webseite, die nicht aussieht wie ein Sieb 5250;., was Sie wollen "
Trevor Perry, bekannt für seine Arbeit mit dem IBM i erläutert Teil dieser Veränderung an den Handler Prozess Hinzufügen 'mit RPG-Open Access ein IBM-Champion, können Sie prüfen, dass Ihr Handler Programme werden einfach anstelle der Betriebssystem-Controller-Programme. Sie können nun die Verwaltung der Dateioperationen auf Ihre Zwecke anpassen. Jeder der Handler wird die von Ihnen oder einem Dritten geschrieben worden zu sein, und wird eine bestimmte Funktion zu erfüllen. "
Datentypen
RPG unterstützt die folgenden Datentypen.
Hinweis:
Das Zeichen in dem Datentypspalte ist das Zeichen, das auf der Definition Spezifikation in der für den Datentyp bezeichneten Spalte kodiert wird. Vergleichen, in einer Sprache wie C, wo die Definition der Variablen sind frei-Format und würde ein Schlüsselwort wie int verwenden, um eine Integer-Variable zu deklarieren, in RPG wird eine Variable mit einer festen Definition-Format-Spezifikation definiert. In der Definition-Spezifikation, mit einem Buchstaben D in Spalte 6 von einer Source-Leitung bezeichnet wird, würde der Datentyp Zeichen in Spalte 40 auch codiert werden, wenn der Datentyp Charakter weggelassen wird, das heißt, das Feld leer, wird die Standard-A sein, wenn keine Dezimalstellen angegeben. Ansonsten wird das Standard P. sein
Beispielcode
Das folgende Programm erhält eine Kundennummer als Eingabeparameter und gibt den Namen und die Adresse als Ausgangsparameter.
Das gleiche Programm mit kostenlosen Berechnungen:
Angenommen, die ARMSTF1 Beispieltabelle wurde mit der folgenden SQL-Anweisung erstellt:
Das gleiche Programm mit kostenlosen Berechnungen und Embedded SQL:
Ab V7R1 des Betriebssystems, würde das obige Programm nicht unbedingt der Prototyp in einer separaten Datei, so könnte es vollständig geschrieben werden als:
Schließlich, wenn Sie Technology Refresh 7, um Ihre 7.1-Betriebssystem anwenden, dann ist die obige Programm kann komplett in Freiform wie folgt codiert:
Plattformen
Wie oben angegeben, die RPG Programmiersprache ursprünglich von IBM für ihre proprietären 1401/360, / 3/32, / 34, / 36, / 38 AS / 400 und System i Systeme eingeführt. Es gab auch Implementierungen für den Digital VAX, Sperry Univac BC / 7, Univac System 80, Siemens BS2000, Burroughs B700, B1700, Hewlett Packard HP3000, ICL 2900-Serie, von Honeywell 6220 und 2020, Vier-Phase IV / 70 und IV / 90-Serie, Singer-System 10 und Wang VS, sowie diverse Compiler & amp; Laufzeitumgebungen für Unix-basierte Systeme) und PCs.
Die neueste Plattform, um ein RPG-Compiler empfangen Windows.Net durch die WINRPG Compiler, die von I-Net System Solutions März 2013 erworben wurde, Diese Version enthält Erweiterungen RPG IV darüber hinaus, dass der Basis IBM-Compiler. Diese Erweiterungen bieten Windows-and.Net Haken in der Muttersprache und System 36 Umwelt, sowie die Fähigkeit, Port DB / 2-Dateien in Access und SQL ODBC-Datenbanken.
RPG II-Anwendungen werden immer noch unter dem IBM z / VSE und z / OS-Betriebssystemen unterstützt, HP MPE-Betriebssystem auf HP3000 und die OpenVMS-Betriebssystem auf VAX, Alpha, und Unisys MCP und jetzt Windows-Server und Desktops unter I-Net-RPG.
Kommentare - 0