RPG IV Erweiterungen in V5R2 – Teil 1

11. November 2008 | Von | Kategorie: Programmierung, Solutions & Provider

Ein Internet-Artikel aus der NEWSolutions mit NEWSabo plus Zugang: RPG IV Erweiterungen in V5R2 – Die V5R2 RPG Erweiterungen bauen auf den in V5R1 gelegten Grundlagen auf

RPG IV Erweiterungen in V5R2

Die V5R2 RPG Erweiterungen bauen auf den in V5R1 gelegten Grundlagen auf


von Hans Boldt

 

Über den Autor

Hans Boldt (boldt@ca.ibm.com) ist Softwareentwickler des RPG Entwicklungsteams im IBM Labor Toronto.

Über den Übersetzer

Übersetzt und für den deutschsprachigen Markt überarbeitet von Joachim Riener.

Die in den fünf Releases zwischen V3R1 (dem ersten RPG IV Release) und V5R1 vorgenommenen Verbesserungen sind in vieler Hinsicht von größerer Bedeutung als der Wechsel von RPG III nach RPG IV. Das erste Release von RPG IV war im Grunde nichts weiter als ein RPG III mit neuer Syntax. Die seit dieser Zeit vorgenommenen funktionalen Veränderungen jedoch begründen die wesentlichen Vorteile der RPG Programmierung. Die Mitglieder des RPG Entwicklungsteams haben diesen Trend in V5R2 konsequent fortgesetzt. Neben den unterschiedlichsten Veränderungen bietet V5R2 wichtige Verbesserungen in der Datenstrukturierung und in den I/O Operationscodes. Die V5R2 RPG IV Erweiterungen bauen auf den in V5R1 gelegten Grundlagen auf. Viele der neu eingebrachten Erweiterungen bedingen die Nutzung von V5R1 Funktionen. Neben den unterschiedlichsten Veränderungen bietet V5R2 wichtige Verbesserungen in der Datenstrukturierung und in den I/O Operationscodes. Bevor wir uns aber mit diesen Neuerungen befassen, wollen wir zuerst nochmals einen Blick auf die mit V5R1 eingeführten Erweiterungen werfen.

V5R1 Rückblick

_MG_7868Die deutlichsten und gleichzeitig auch kontroversesten RPG Verbesserungen in V5R1 bezogen sich auf die Freiform-Rechenbestimmungen. Statements zwischen den Anweisungen /Free und /End-Free werden in einem freien Format spezifiziert. Wie in fast allen Programmiersprachen der vergangenen 40 Jahre können Statements auch die Aufgabe haben, die logische Struktur des Programmcodes darzustellen. Die Statements werden, beginnend mit dem Operationscode, gefolgt von Faktor1, Faktor2 und dem Ergebnisfeld codiert.

Die aber wohl entscheidendste Veränderung war die Einführung der Schlüsselworte QUALIFIED und LIKEDS in den Definitions-Spezifikationen. Das Schlüsselwort QUALIFIED brachte das Konzept der qualifizierten Namen in die Sprache ein. Auf Unterfelder in qualifizierten Datenstrukturen muss nicht mit dem Unterfeldnamen allein, sondern mit der Syntax DSName.SubfName verwiesen werden. Optisch wirkt das wie ein lediglich mit einem Präfix versehener Unterfeldname, aber es verbirgt sich sehr viel mehr an Funktionalität dahinter.

Eine Datenstruktur kann unter Verwendung des Schlüsselwortes LIKEDS definiert werden und übernimmt damit alle Unterfelder einer anderen Datenstruktur. Eine LIKEDS Datenstruktur muss – zur Vermeidung von Namenskollisionen – notwendigerweise eine qualifizierte Datenstruktur sein. Dies kann sich für Prozedurprototypen sehr nützlich auswirken, da Prozedurparameter sich mit LIKEDS definieren lassen. Das Programm in Abbildung 1 zeigt ein solches Beispiel. Der Parameter der Prozedur Proc ist mittels LIKEDS wie die Datenstruktur DS definiert. Somit ist innerhalb der Prozedur der Parameter Result als Datenstruktur mit den gleichen Unterfeldern wie die Datenstruktur itemdesc definiert. Dieses Verfahren birgt eine gewisse Eleganz, so dass man davon ausgehen kann, dass es sich als bevorzugte Technik zur Übergabe von Datenstrukturen an Prozeduren durchsetzen wird.

Erweiterungen für Datenstrukturen

Die Erweiterungen für Datenstrukturen in V5R2 bauen auf der Funktionalität von QUALIFIED und LIKEDS auf. Die in V5R1 eingeführten qualifizierten Namen werden als einfach qualifiziert betrachtet. Einfach qualifizierte Namen haben das Format A.B (zwei Namen, getrennt durch einen Punkt, optional gefolgt von einem Feldgruppenindex).

Mit V5R2 werden voll qualifizierte Namen eingeführt, die aus mehr als einer Qualifizierungsebene bestehen können, wobei jedem Namen ein Feldgruppenindex folgen kann. Solch ein voll qualifizierter Name wäre zum Beispiel:

    DS(I).Subf.A(J).X Annähernd 100 Qualifikationsebenen sind hierbei zulässig.

Wie werden solche Datenstrukturen definiert? Zu diesem Zweck wurden keine neuen Schlüsselworte eingeführt. Aber zwei bereits bekannte Schlüsselworte sind nun an anderen Stellen zulässig.

Schlagworte: , , , , , , , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.