assembler nach cobol die vollautomatische transformation mit travert®.a2c erläutert am beispiel...

28
Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms © 2008 – 2015 Schierholz IT Modernisation GmbH 22. Dezember 2014

Upload: sigiswald-reeter

Post on 06-Apr-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Assembler nach COBOL

Die vollautomatische Transformation mit TRAVERT®.A2C

erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms

© 2008 – 2015 Schierholz IT Modernisation GmbH22. Dezember 2014

Page 2: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Inhalt

EinführungEinfachere Muster

Umgang mit KommentarenSpeicherdefinitionenRelative SprüngeTransformation von Code-Molekülen:B/NOP, UNPK/OI, Field Padding mit MVI/MVC, EX, ED/EDMK

Komplexe und sehr komplexe MusterAblösung der OS Linkage ConventionDateien: Definition und ZugriffErkennung und Umformung von SubroutinenTabellen: Definition und Zugriff

Einführung Einfache Muster Komplexe Muster Synopsis

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Page 3: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Das UnternehmenEinführung Einfache Muster Komplexe Muster Synopsis Unternehmen Produkte Testprogramm

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Schierholz IT Modernisation GmbH ist der Spezialist für die

AnwendungsfelderAnalyse von Softwaresystemen beliebiger Komplexität und GrößeTransformation von Sprachen in beliebige andere- ohne Veränderung der FunktionalitätReengineering von Quellcode beliebiger Sprachen

Unsere Kunden sind große IT Anwender (meist mit Großrechnern), v. a. Versicherungen, Banken und Behörden.Unsere Leistungen

Massive Kostensenkung der IT durch Migration (i. d. R. mehr als 50% !)Optimale Vorbereitung von Projekten durch vollständige Analyse gewachsener Systeme: Konsistenz, Redundanz, fehlender Code, Abhängigkeit von Dritt-Systemen usw. Daten werden als graphische Modelle und als Repository ausgegeben.

maschinelle Verarbeitung von Computersprachen

Page 4: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

ProdukteEinführung Einfache Muster Komplexe Muster Synopsis Unternehmen Produkte Testprogramm

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

RULAMAN® ist die universelle Umgebung für alle unsere ProdukteSPL – unsere Programmiersprache zur hoch-effizienten Entwicklung von Konvertern und AnalysewerkzeugenYGGDRASIL® analysiert Softwaresysteme beliebiger Sprachen, Größe und Komplexität automatischDie TRAVERT® Produkte umfassen eine Reihe von Konvertern, z.B.

TRAVERT.A2C transformiert Mainframe Assembler nach ANSI-COBOLTRAVERT.Ix2J konvertiert Informix 4GL nach JavaTRAVERT.V2R modernisiert COBOL VSAM Anwendungen samt Daten nach Oracle / DB2

Die GRANUM® Produkte zum Reengineering ohne Sprachwechsel, z.B.:GRANUM.RE – Reengineering , Restrukturierung, Entfernung von Totcode u. v. a. m.GRANUM.FO – standardisierte Formatierung („Beautifying“)GRANUM.RF – Refactoring, auch zur Positionierung für die Migration in OO-Sprachen

Page 5: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Diese Präsentation ...Einführung Einfache Muster Komplexe Muster Synopsis Unternehmen Produkte Testprogramm

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

... zeigt die Mächtigkeit unserer Konverter-Produkte anhand der Transformation eines Assembler Programms nach COBOL durch unser Produkt A2C.Wir erläutern die wichtigsten Transformationsthemen durch Gegenüberstellung der Ausprägungen in Assembler und dem jeweiligen Ergebnis in COBOL.

Das Beste ist:Das resultierende COBOL Programm erbringt ohne jede Nachbearbeitung fehlerfrei dieselben Ergebnisse wie das Assembler Programm!

Alles geschieht vollautomatisch!

Bevor Sie sich jetzt in die Details vertiefen, empfehlen wir, die Begleitdateien herunter

zu laden und bereit zu halten.

Page 6: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Das Testprogramm A2CP2Einführung Einfache Muster Komplexe Muster Synopsis Unternehmen Produkte Testprogramm

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Eingabe:ZIP (PLZ),

requestor ID, priority

Ausgabe:Liste

AUTHTABID, authority

name

CITYTABZIP, city name,

inhabitants

A2CP2prüft und

vervollständigt Eingabesätze

benutzt zweiinterne Tabellen

Page 7: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Einfachere MusterEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Umgang mit KommentarenSpeicherdefinitionenRelative SprüngeTransformation von sog. Code Molekülen

Page 8: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Verlagern der ProgrammbeschreibungEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

*********************************************************************** 1.1* The program reads selected ZIP codes from a sequential file and* enriches the data with related information from 2 internal tables. . . .* authority ID, 4 bytes alphanumeric* authority name, 20 bytes alphanumeric*********************************************************************** 1.2

PROGRAM-ID. A2CP2.* ************************************************************************ The program reads selected ZIP codes from a sequential file and* enriches the data with related information from 2 internal tables. . . .* authority ID, 4 bytes alphanumeric* authority name, 20 bytes alphanumeric***********************************************************************

Per Default interpretiert A2C den ersten größeren Block von

Ganzzeilenkommentaren als Programmbeschreibung.

Dieser Kommentarblock wird an den Anfang des COBOL Programms gestellt.

Page 9: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Einfügen der Transformation HistoryEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

*----------------------------------------------------------------* * Entity A2CP2 * Transformed by Schierholz IT Modernisation GmbH * Baumwall 5, 20459 Hamburg, Germany * On 12.12.2014 09:05:25 * Using A2C Version 4.2 * A2C is a RULAMAN(r) based product * ---------------------------------------------------------------* * Parameters none * ENTRY none * Calling none * Return code 0 * ABEND code none *----------------------------------------------------------------*

A2C generiert einige Informationen über das Programm und die Transformation

direkt hinter die Programmbeschreibung.

Page 10: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

ÜberschriftsblöckeEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

*********************************************************************** 8.2* Print final statistics***********************************************************************PRTS14 DC F'-1'PRTSTATS DS 0H

*********************************************************************** * Print final statistics *********************************************************************** PRTSTATS SECTION. PRTSTATS-Start.

Die Mustererkennung hat PRTSTATS und andere als Subroutinen identifiziert.

So kann der über »PRTS14« liegende Kommentarblock an den Beginn der

COBOL Subroutine verschoben werden.

Page 11: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Umgang mit Inline KommentarenEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

A2C bietet verschiedene Optionen zum Umgang mit Inline Kommentaren1. TRANSFORM - Umformen in COBOL Ganzzeilenkommentare, die wahlweise vor oder hinter die betreffende Zeile gestellt werden2. REMOVE - Entfernen3. KEEP - Umformen in COBOL Inline Kommentare (*>)

In den meisten Fällen ergibt die Option 2 »REMOVE« am meisten Sinn, da jeder Assembler Inline Kommentare auf ein

bestimmtes Statement bezogen ist, das von A2C mit mehreren anderen zu einem

einzigen COBOL Befehl umgeformt wird.

Für diese Demonstration wurde deshalb die Option »REMOVE« aktiviert.

Page 12: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Location Counter und SpeicheradressenEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

INREC DS 0CL80INZIP DS CL5 DS CINREQID DS CL4 requesting authority DS CINPRI DS C ORG INREC+L'INREC 3

01 INREC PIC X(80). 01 FILLER REDEFINES INREC. 02 INZIP PIC X(5). 02 FILLER PIC X. 02 INREQID PIC X(4). 02 FILLER PIC X. 02 INPRI PIC X. 02 FILLER PIC X(68).

Hier wird der ORG-Befehl dazu benutzt, eine „Lücke“ im Speicher zu definieren. Der

Assembler berechnet ihre Länge automatisch.A2C übernimmt diese Berechnung und

generiert einen entsprechenden »FILLER«.

Das Längenattribut »0« in »0CL80«wird in ein »FILLER REDEFINES«

umgeformt.

Page 13: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Ein relativer SprungEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

CP LINECNT,=P'50' max 50 lines here BL *+14 no header to be printed 5.1AP PAGECNT,=P'1' BAL R14,PRTHDR print header line(s) 6.1MVI INERR,X'00' reset indicator 5.2

Der »BL *+14« überspringt den »AP« und den »BAL«.

Auf der COBOL Seite finden wir ein bedingtes »GO TO« zu einem künstlich

erzeugten Label (»Demo-BT0«).

NB: Das Präfix, hier »Demo-« ist selbstverständlich frei wählbar!

EVALUATE TRUE WHEN LINECNT < 50 GO TO Demo-BT0 END-EVALUATE ADD 1 TO PAGECNT PERFORM PRTHDR. Demo-BT0.

Page 14: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Code-MoleküleEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Wenn mehrere Assembler Befehle in ihrem Zusammenwirken eine abgegrenzte Bedeutung haben, bezeichnen wir das als „Code Moleküle“Die Mustererkennung von A2C kennt eine Vielzahl solcher Moleküle und aktiviert die entsprechenden Regeln zur TransformationDie Ablösung erfolgt

oft mit nur einem einzigen COBOL Befehloder eleganten COBOL Konstrukten

Häufig vorkommende Moleküle sindSelbstmodifizierender Code, vielfach eine sog. B/NOP-WeicheUNPK mit nachfolgender Vorzeichen Korrektur durch OIMVI / MVC zur Initialisierung eines Feldes auf ein bestimmtes ZeichenDer EX-Befehl mit dem zugehörigen auszuführenden StatementED / EDMK zur Formatierung numerischer Felder. Hier erzeugt A2C in Abhängigkeit von den Masken unterschiedliche Redefinitionen

Page 15: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Beispiel B/NOPEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

MAIN NOP PASS01 4.1 MVI MAIN+1,X'F0' next time no file OPEN 4.2

MAIN. IF SW-1-JUMP GO TO PASS01 END-IF SET SW-1-JUMP TO TRUE

A2C löst dieses Molekül durch einen Schalter ab, der anstelle des »NOP«

abgefragt wird.

77 SW-1 PIC X VALUE 'N'. 88 SW-1-JUMP VALUE 'Y'. 88 SW-1-NO-JUMP VALUE 'N'.

Die Definition des Schalters erfolgt automatisch in der WORKING STORAGE

SECTION.

Page 16: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Moleküle UNPK/OI und Field PaddingEinführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

02 HDR1PG-0ZL3 PIC 999.

A2C generiert eine „character numeric“ Redefinition des »HDR1PG«.

MOVE PAGECNT TO HDR1PG-0ZL3

Danach kann das Molekül durch einen einfachen »MOVE« abgelöst werden.

MOVE ALL '?' TO DETAUTH

Das sog. Field Padding wird durch einen einfachen »MOVE ALL« ersetzt.

UNPK HDR1PG,PAGECNT 9.1OI HDR1PG+L'HDR1PG-1,X'F0' 9.2

UNPK/OI

MVI DETAUTH,C'?' 17.1MVC DETAUTH+1(L'DETAUTH-1),DETAUTH 17.2

Field Padding

Page 17: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Molekül „EX“Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

PACK DWD,INPRI 10.4CVB R2,DWD BCTR R2,0 10.5EX R2,MVCSTAR 10.1Die Mustererkennung geht über den

»PACK« bis zum »EX« .Zusätzlich geht der Zielbefehl (hier ein

»MVC«) in die Mustererkennung ein.

MOVE INPRI-0ZL1 TO DWD-0PL8 MOVE DWD-0PL8 TO Demo-R2Lo-S SUBTRACT 1 FROM Demo-R2Lo MOVE STARS TO DETPRI(1:(Demo-R2Lo + 1))

Die Sequenz wird durch »MOVE« und ein »SUBTRACT« abgelöst.

Die variable Länge, die der EX benutzt, transformiert A2C zu einem »MOVE« mit

sog. „COBOL Reference Modifier”.

MVCSTAR MVC DETPRI(0),STARS 10.2

Page 18: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Molekül „ED/EDMK“Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

MVC DETINH,=X'402020206B2120206B202020' 11.2ED DETINH,DWD+3 10.1

Das Muster, das hier in das Zielfeld des »ED« kopiert wird, dient als Vorlage für eine entsprechende COBOL Definition.

MOVE DWD-3PL5 TO DETINH.

Nun genügt ein einfacher »MOVE« , um den ED abzulösen.

02 DETINH PIC BZZZ,Z99,999.

Page 19: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Komplexe MusterEinführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Transformation des Codes der OS Linkage ConventionDateien: Definition und ZugriffeErkennen und Aufruf von Subroutinen (BAL/BAS)Transformation von Tabellendaten und -zugriffen

Page 20: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Transformation OS Linkage ConventionEinführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

SAVE (14,12) 2.1 LR R12,R15 get base address USING A2CP2,R12 LA R2,SAVEAREA ST R2,8(R13) link to next SA ST R13,4(R2) link to prev SA LR R13,R2 2.2

LA R15,0 2.3 L R13,4(R13) Caller's SA RETURN (14,12),RC=(15) 2.4

MOVE 0 TO RETURN−CODE GOBACK.

Dies ist nur eines von sehr vielen Mustern und Varianten

der Programminitialisierung.Der Code wird erkannt und

vollständig entfernt!

Dies ist ein typisches Muster zum Setzen des Returncodes mit Rücksprung zum Caller.

Hieraus entsteht folgender COBOL Code:

Page 21: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

File Input und OutputEinführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Das Assembler Programm enthält eine Eingabe- und eine Ausgabedatei. Folgerichtig müssen u.a. folgende Befehle transformiert werden:

Anm.: Das Testprogramm ist für z/OS geschrieben. Selbstverständlich unterstützt A2C auch die Makros von z/VSE und BS2000

INFILE DCB BLKSIZE=80,LRECL=80,MACRF=GM,EODAD=INEND,DDNAME=INFILE, +14.5 DSORG=PS INEND DS 0H end of input file reached 14.3OUTLST DCB BLKSIZE=133,LRECL=133,MACRF=PM,RECFM=A,DDNAME=OUTLST, +15.4 DSORG=PS GET INFILE,INREC get first/next record 14.2 PUT OUTLST,DETLINE 15.3 OPEN (INFILE,(INPUT)) 14.1 OPEN (OUTLST,(OUTPUT)) 15.1 CLOSE (INFILE) 14.4 CLOSE (OUTLST) 15.2

Page 22: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Dateien in COBOLEinführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

A2C transformiert den Assemblercode, der sich mit Files befasst, u.a. in folgende Statements:FILE-CONTROL. SELECT INFILE ASSIGN TO S-INFILE ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS INFILE-STATUS.. . .FD INFILE BLOCK CONTAINS 1 RECORDS RECORD CONTAINS 80 CHARACTERS RECORDING MODE IS F. 01 INFILE-RECORD PIC X(80). . . .77 INFILE-STATUS PIC XX.77 OUTLST-STATUS PIC XX.. . .OPEN INPUT INFILE OPEN OUTPUT OUTLST.. . .READ INFILE RECORD INTO INREC AT END GO TO INEND END-READ

Alle COBOL Statements zur Definition und zum Zugriff auf Dateien finden sich im COBOL

Programm, das wie alles andere von A2C

vollautomatisch erzeugt wurde.

Page 23: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

SubroutinenEinführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Eine Vielzahl von Mustern befasst sich mit der Erkennung und Verarbeitung von Subroutinen.

Hier sehen wir einen Aufruf mit der BAL InstruktionVerwaltungsregister sind zu identifizierenBefehle zur Sicherung und zum Rückladen der Verwaltungsregister müssen erkannt werden. Die betreffenden Befehle und Datenbereiche werden gelöscht.Das Ende der Subroutine muss identifiziert werden, auch wenn die Subroutine mehrere Ausgänge hat.Die gesamte Subroutine wird in einen gemeinsamen Pool von Unterprogrammen verschoben, zu einer SECTION umgeformt und der BAL, bzw. BAS durch ein COBOL PERFORM ersetzt.

Page 24: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Erkennen und Umformen von SubroutinenEinführung Einfache Muster Komplexe Muster Synopsis Rel. Sprünge Subroutinen Tabellen Dateien

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

BAL R14,PRTHDR print header line(s) 6.1

DS F PRTHDR DS 0H ST R14,*-4 save R14 6.3 . . . L R14,PRTHDR-4 6.4 BR R14 6.5

Der »BAL«-Aufruf wird zum »PERFORM«.

Die gesamte Routine wird in den sog. „A2C Subroutine Pool” verschoben.

Am Ende werden nur noch 3 COBOL Befehle benötigt.

PERFORM PRTHDR.

PRTHDR SECTION.PRTHDR-Start.

Kunden neigen dazu, ihre eigenen Methoden für den Aufruf von Subroutinen zu haben. Es ist sehr einfach, A2C immer weitere Muster „beizubringen“.

Page 25: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

Tabellen – eines der komplexesten ThemenEinführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Die Muster zur Erkennung von Tabellen und der zugehörigen Zugriffsmechanismen sind hoch komplex und nehmen einen eigenen Bereich im A2C Regelsatz ein.Die Erkennung ist parametrierbar, z. B. über Mindestanzahl Zeilen und SpaltenTabellen werden zu COBOL Tabellen umgeformt

Definition aller DatenzeilenRedefinition der gesamten Tabelle über eine OCCURS KlauselAutomatische Generierung von Tabellenindex und des Tabellenmaximums

Zugriffsmechanismen werden erkanntKopf-, fuß- oder zählergesteuerte Schleifeprogrammiert mit BXH, BXLE, BCT oder als ordinäre Schleife mit Branch nach obenRegisteradressierung von Zellen oder Zeilen wird in Zugriff über Index transformiertEnde-Abfrage auf Delimiter, z.B. X‘FF‘ wird umgesetzt.

Page 26: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

TabellenEinführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

GET010 DS 0H LA R3,AUTHTAB GETLOOP DS 0H CLI 0(R3),X'FF' BE GETNOTFD not found CLC INREQID,0(R3) BE GETFD match! LA R3,24(R3) B GETLOOP GETFD DS 0H MVC DETAUTH,4(R3) B GETEND GETNOTFD DS 0H MVI DETAUTH,C'?' MVC DETAUTH+1(L'DETAUTH-1),DETAUTH MVC DETAUTH(L'INREQID),INREQID AP ERRCNT,=P'1' MVI INERR,X'FF' GETEND BR R14

Die Tabellen AUTHTAB und CITYTAB (im Assember-Quelltext ab Zeile 149 bzw. 274) werden zu COBOL umgeformt.

Das Ergebnis findet sich im COBOL Sourcecode ab Zeile 147 bzw. 178.

Dieser Zugriff auf »AUTHTAB« findet sich ab Zeile 166 im Assembler Quelltext.

Wie A2C diese Logik vollautomatisch in COBOL konvertiert, sehen sie auf der

nächsten Seite.

Page 27: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

TabellenEinführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

GET010. SET AuthTbl-Index TO 1. GETLOOP. IF AuthTbl-Index > AuthTbl-Maximum GO TO GETNOTFD END-IF EVALUATE TRUE WHEN INREQID = AuthTbl-ID(AuthTbl-Index) GO TO GETFD END-EVALUATE SET AuthTbl-Index UP BY 1 GO TO GETLOOP. GETFD. MOVE AuthTbl-Name(AuthTbl-Index) TO DETAUTH GO TO GETEND. GETNOTFD. MOVE ALL '?' TO DETAUTH MOVE INREQID TO DETAUTH-0XL4 ADD 1 TO ERRCNT MOVE HIGH-VALUE TO INERR. GETEND.

01 FILLER REDEFINES AuthTbl. 02 AUTHTAB-ENTRY OCCURS 7 INDEXED BY AuthTbl-Index. 03 AuthTbl-ID PIC X(4). 03 AuthTbl-Name PIC X(20).

A2C hat u.a. den Tabellenindex »AuthTbl-Index« und eine

Redefinition der AUTHTAB erzeugt.

A2C transformiert den Assembler-Tabellenzugriff

(siehe vorige Seite) vollautomatisch in die nebenstehende COBOL

Sequenz.

Page 28: Assembler nach COBOL Die vollautomatische Transformation mit TRAVERT®.A2C erläutert am Beispiel eines vollständigen, ablauffähigen Assemblerprogramms ©

SynopsisEinführung Einfache Muster Komplexe Muster Synopsis

© 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Das Produkt TRAVERT®.A2C ist in der Lage, Mainframe-Assemblerprogramme vollautomatisch in sofort lauffähige COBOL- Programme zu transformieren.Wie das funktioniert, wie man Assembler-Konvertierungsprojekte durchführt und was es dabei zu beachten gilt, erläutern wir Ihnen gerne persönlich unter 040 524 7058 - 10.

Weitere Informationen zu unseren Produkten und Leistungen finden Sie unter www.it-modernisation.com. Oder schicken Sie eine E-Mail [email protected].