Transcript A2C - IT-Modernisation
Slide 1
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
14. Januar 2015
Slide 2
Einführung Einfache Muster Komplexe Muster Synopsis
Inhalt
Einführung
Einfachere Muster
Umgang mit Kommentaren
Speicherdefinitionen
Relative Sprünge
Transformation von Code-Molekülen:
B/NOP, UNPK/OI, Field Padding mit MVI/MVC, EX, ED/EDMK
Komplexe und sehr komplexe Muster
Ablösung der OS Linkage Convention
Dateien: Definition und Zugriff
Erkennung und Umformung von Subroutinen
Tabellen: Definition und Zugriff
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL 2
22
Slide 3
Einführung Einfache Muster Komplexe Muster Synopsis
Unternehmen Produkte Testprogramm
Das Unternehmen
Schierholz IT Modernisation GmbH ist der Spezialist für die
maschinelle Verarbeitung von Computersprachen
Anwendungsfelder
Analyse von Softwaresystemen beliebiger Komplexität und Größe
Transformation von Sprachen in beliebige andere
- ohne Veränderung der Funktionalität
Reengineering 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.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
33
Slide 4
Einführung Einfache Muster Komplexe Muster Synopsis
Unternehmen Produkte Testprogramm
Produkte
RULAMAN® ist die universelle Umgebung für alle unsere Produkte
SPL – unsere Programmiersprache zur hoch-effizienten Entwicklung von Konvertern
und Analysewerkzeugen
YGGDRASIL® analysiert Softwaresysteme beliebiger Sprachen, Größe und
Komplexität automatisch
Die TRAVERT® Produkte umfassen eine Reihe von Konvertern, z.B.
TRAVERT.A2C transformiert Mainframe Assembler nach ANSI-COBOL
TRAVERT.Ix2J konvertiert Informix 4GL nach Java
TRAVERT.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
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
44
Slide 5
Einführung Einfache Muster Komplexe Muster Synopsis
Unternehmen Produkte Testprogramm
Diese Präsentation ...
... 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: Alles geschieht vollautomatisch!
Das resultierende COBOL Programm erbringt ohne jede Nachbearbeitung fehlerfrei
dieselben Ergebnisse wie das Assembler Programm!
Bevor Sie sich jetzt in die Details vertiefen, empfehlen wir,
die Begleitdateien herunter zu laden und bereit zu halten.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
55
Slide 6
Einführung Einfache Muster Komplexe Muster Synopsis
Unternehmen Produkte Testprogramm
Das Testprogramm A2CP2
Eingabe:
ZIP (PLZ),
requestor ID,
priority
AUTHTAB
ID, authority
name
A2CP2
prüft und
vervollständigt
Eingabesätze
benutzt zwei
interne Tabellen
CITYTAB
ZIP, city name,
inhabitants
Ausgabe:
Liste
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
66
Slide 7
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Einfachere Muster
Umgang mit Kommentaren
Speicherdefinitionen
Relative Sprünge
Transformation von sog. Code Molekülen
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
77
Slide 8
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Verlagern der Programmbeschreibung
***********************************************************************
* 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.1
1.2
Per Default interpretiert A2C den ersten größeren Block von
Ganzzeilenkommentaren als Programmbeschreibung.
Dieser Kommentarblock wird an den Anfang des COBOL
Programms gestellt.
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
***********************************************************************
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
88
Slide 9
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Einfügen der Transformation History
A2C generiert einige Informationen
über das Programm und die Transformation
direkt hinter die Programmbeschreibung.
*----------------------------------------------------------------*
* 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
*----------------------------------------------------------------*
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
99
Slide 10
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Überschriftsblöcke
***********************************************************************
* Print final statistics
***********************************************************************
PRTS14
DC
F'-1'
PRTSTATS DS
0H
8.2
Die Mustererkennung hat PRTSTATS und andere als Subroutinen
identifiziert.
So kann der über »PRTS14« liegende Kommentarblock an den
Beginn der COBOL Subroutine verschoben werden.
***********************************************************************
* Print final statistics
***********************************************************************
PRTSTATS SECTION.
PRTSTATS-Start.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1010
Slide 11
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Umgang mit Inline Kommentaren
A2C bietet verschiedene Optionen zum Umgang mit Inline Kommentaren
1.
2.
3.
TRANSFORM - Umformen in COBOL Ganzzeilenkommentare, die wahlweise vor oder
hinter die betreffende Zeile gestellt werden
REMOVE - Entfernen
KEEP - Umformen in COBOL Inline Kommentare (*>)
Meistens ist Option 2 »REMOVE« am sinnvollsten,
da jeder Assembler Inline Kommentar nur auf ein Statement
bezogen ist. A2C formt jedoch mehrere Statements
zu einem einzigen COBOL Befehl um.
Für diese Demonstration wurde deshalb die Option
»REMOVE« aktiviert.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1111
Slide 12
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Location Counter und Speicheradressen
INREC
INZIP
INREQID
INPRI
DS
DS
DS
DS
DS
DS
ORG
0CL80
CL5
C
CL4
C
C
INREC+L'INREC
requesting authority
3
Das Längenattribut »0« in »0CL80«
wird in ein »FILLER REDEFINES« umgeformt.
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«.
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).
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1212
Slide 13
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Ein relativer Sprung
CP
BL
AP
BAL
MVI
LINECNT,=P'50'
*+14
PAGECNT,=P'1'
R14,PRTHDR
INERR,X'00'
max 50 lines here
no header to be printed
5.1
print header line(s)
reset indicator
6.1
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.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1313
Slide 14
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Code-Moleküle
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 Transformation
Die Ablösung erfolgt
oft mit nur einem einzigen COBOL Befehl
oder eleganten COBOL Konstrukten
Häufig vorkommende Moleküle sind
Selbst-modifizierender Code, vielfach eine sog. B/NOP-Weiche
UNPK mit nachfolgender Vorzeichenkorrektur durch OI
MVI / MVC zur Initialisierung eines Feldes auf ein bestimmtes Zeichen
Der EX-Befehl mit dem zugehörigen auszuführenden Statement
ED / EDMK zur Formatierung numerischer Felder.
Hier erzeugt A2C in Abhängigkeit von den Masken unterschiedliche Redefinitionen
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1414
Slide 15
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Beispiel B/NOP
MAIN
NOP
MVI
PASS01
MAIN+1,X'F0'
next time no file OPEN
4.1
4.2
A2C löst dieses Molekül durch einen Schalter ab,
der anstelle des »NOP« abgefragt wird.
MAIN.
IF SW-1-JUMP
GO TO PASS01
END-IF
SET SW-1-JUMP TO TRUE
Die Definition des Schalters erfolgt automatisch
in der WORKING STORAGE SECTION.
77 SW-1 PIC X VALUE 'N'.
88 SW-1-JUMP VALUE 'Y'.
88 SW-1-NO-JUMP VALUE 'N'.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1515
Slide 16
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Moleküle UNPK/OI und Field Padding
UNPK/OI
UNPK
OI
HDR1PG,PAGECNT
HDR1PG+L'HDR1PG-1,X'F0'
9.1
9.2
A2C generiert
eine „character numeric“ Redefinition des »HDR1PG«.
02 HDR1PG-0ZL3 PIC 999.
Danach kann das Molekül durch einen einfachen »MOVE«
abgelöst werden.
MOVE PAGECNT TO HDR1PG-0ZL3
Field Padding
MVI
MVC
DETAUTH,C'?'
DETAUTH+1(L'DETAUTH-1),DETAUTH
17.1
17.2
Das sog. Field Padding wird durch einen einfachen »MOVE
ALL« ersetzt.
MOVE ALL '?' TO DETAUTH
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1616
Slide 17
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Molekül „EX“
PACK
CVB
BCTR
EX
DWD,INPRI
R2,DWD
R2,0
R2,MVCSTAR
MVCSTAR
MVC
10.4
10.5
Die Mustererkennung geht über den »PACK«
bis zum »EX«
10.1
.
Zusätzlich geht der Zielbefehl (hier ein »MVC«) in die
Mustererkennung ein.
DETPRI(0),STARS
10.2
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”.
MOVE INPRI-0ZL1
MOVE DWD-0PL8
SUBTRACT 1
MOVE STARS
TO DWD-0PL8
TO Demo-R2Lo-S
FROM Demo-R2Lo
TO DETPRI(1:(Demo-R2Lo + 1))
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1717
Slide 18
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Molekül „ED/EDMK“
MVC
ED
DETINH,=X'402020206B2120206B202020'
DETINH,DWD+3
11.2
10.1
Das Muster, das hier in das Zielfeld des »ED« kopiert wird,
dient als Vorlage für eine entsprechende COBOL Definition.
02 DETINH PIC BZZZ,Z99,999.
Nun genügt ein einfacher »MOVE« , um den ED abzulösen.
MOVE DWD-3PL5
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
TO DETINH.
1818
Slide 19
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Komplexe Muster
Transformation des Codes der OS Linkage Convention
Dateien: Definition und Zugriffe
Erkennen und Aufruf von Subroutinen (BAL/BAS)
Transformation von Tabellendaten und -zugriffen
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1919
Slide 20
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Transformation OS Linkage Convention
SAVE
LR
USING
LA
ST
ST
LR
(14,12)
R12,R15
A2CP2,R12
R2,SAVEAREA
R2,8(R13)
R13,4(R2)
R13,R2
LA
R15,0
L
R13,4(R13)
RETURN (14,12),RC=(15)
2.1
get base address
link to next SA
link to prev SA
2.2
Dies ist nur eines von sehr vielen Mustern und
Varianten
der Programminitialisierung.
Der Code wird erkannt und vollständig entfernt!
2.3
Caller's SA
2.4
Dies ist ein typisches Muster zum Setzen des Returncodes
mit Rücksprung zum Caller.
Hieraus entsteht folgender COBOL Code:
MOVE 0 TO RETURN−CODE
GOBACK.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2020
Slide 21
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
File Input und Output
Das Assembler Programm enthält eine Eingabe- und eine Ausgabedatei.
Folgerichtig müssen u.a. folgende Befehle transformiert werden:
INFILE
INEND
OUTLST
DCB
BLKSIZE=80,LRECL=80,MACRF=GM,EODAD=INEND,DDNAME=INFILE, +14.5
DSORG=PS
DS
0H
end of input file reached
14.3
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
Anm.: Dieses Demoprogramm ist für z/OS geschrieben. Selbstverständlich
unterstützt A2C auch die Makros von z/VSE und BS2000
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2121
Slide 22
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Dateien in 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
© 2008-2015 Schierholz IT Modernisation GmbH
Alle COBOL Statements
zur Definition und zum Zugriff auf Dateien
finden sich im COBOL Programm.
Sie werden - wie alles andere von A2C vollautomatisch erzeugt.
Assembler nach COBOL
2222
Slide 23
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Subroutinen
Eine Vielzahl von Mustern befasst sich mit der Erkennung und Verarbeitung von
Subroutinen.
Hier sehen wir einen Aufruf mit der BAL Instruktion
Verwaltungsregister sind zu identifizieren
Befehle 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.
Der BAL, bzw. BAS wird durch ein COBOL PERFORM ersetzt.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2323
Slide 24
Einführung Einfache Muster Komplexe Muster Synopsis
Rel. Sprünge Subroutinen Tabellen Dateien
Erkennen und Umformen von Subroutinen
Der »BAL«-Aufruf wird zum »PERFORM«.
Die gesamte Routine wird in den
sog. „A2C Subroutine Pool” verschoben.
BAL
R14,PRTHDR
PRTHDR
DS
F
DS
0H
ST
R14,*-4
. . .
L
R14,PRTHDR-4
BR
R14
print header line(s)
save R14
6.1
6.3
6.4
6.5
Am Ende werden nur noch
3 COBOL Befehle benötigt.
Kunden neigen dazu, ihre eigenen Methoden für den
Aufruf von Subroutinen zu haben. Es ist sehr einfach,
A2C weitere Muster „beizubringen“.
PERFORM PRTHDR.
PRTHDR SECTION.
PRTHDR-Start.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2424
Slide 25
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Tabellen – eines der komplexesten Themen
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 Spalten
Tabellen werden zu COBOL Tabellen umgeformt
Definition aller Datenzeilen
Redefinition der gesamten Tabelle über eine OCCURS Klausel
Automatische Generierung von Tabellenindex und des Tabellenmaximums
Zugriffsmechanismen werden erkannt
Kopf-, fuß- oder zählergesteuerte Schleife
programmiert mit BXH, BXLE, BCT oder als ordinäre Schleife mit Sprung nach oben
Registeradressierung von Zellen oder Zeilen wird in Zugriff über Index transformiert
Ende-Abfrage auf Delimiter, z.B. X‘FF‘ wird umgesetzt.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2525
Slide 26
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Tabellen
Die Tabellen AUTHTAB und CITYTAB (im Assembler-Quelltext ab Zeile 149 bzw. 274)
werden zu COBOL umgeformt.
Das Ergebnis findet sich im COBOL Sourcecode ab Zeile 147 bzw. 178.
GET010
DS
LA
GETLOOP DS
CLI
BE
CLC
BE
LA
B
GETFD
DS
MVC
B
GETNOTFD DS
MVI
MVC
MVC
AP
MVI
GETEND
BR
0H
R3,AUTHTAB
0H
0(R3),X'FF'
GETNOTFD
not found
INREQID,0(R3)
GETFD
match!
R3,24(R3)
Dieser Zugriff auf »AUTHTAB« findet sich ab Zeile 166 im
GETLOOP
Assembler Quelltext.
0H
DETAUTH,4(R3)
Wie A2C diese Logik vollautomatisch in COBOL konvertiert,
GETEND
sehen sie auf der nächsten Seite.
0H
DETAUTH,C'?'
DETAUTH+1(L'DETAUTH-1),DETAUTH
DETAUTH(L'INREQID),INREQID
ERRCNT,=P'1'
INERR,X'FF'
R14
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2626
Slide 27
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Tabellen
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).
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.
© 2008-2015 Schierholz IT Modernisation GmbH
A2C hat u.a. den Tabellenindex
»AuthTbl-Index« und eine Redefinition der
AUTHTAB erzeugt.
A2C transformiert den AssemblerTabellenzugriff (siehe vorige Seite)
vollautomatisch in die nebenstehende
COBOL Sequenz.
Assembler nach COBOL
2727
Slide 28
Einführung Einfache Muster Komplexe Muster Synopsis
Synopsis
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 an
[email protected].
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2828
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
14. Januar 2015
Slide 2
Einführung Einfache Muster Komplexe Muster Synopsis
Inhalt
Einführung
Einfachere Muster
Umgang mit Kommentaren
Speicherdefinitionen
Relative Sprünge
Transformation von Code-Molekülen:
B/NOP, UNPK/OI, Field Padding mit MVI/MVC, EX, ED/EDMK
Komplexe und sehr komplexe Muster
Ablösung der OS Linkage Convention
Dateien: Definition und Zugriff
Erkennung und Umformung von Subroutinen
Tabellen: Definition und Zugriff
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL 2
22
Slide 3
Einführung Einfache Muster Komplexe Muster Synopsis
Unternehmen Produkte Testprogramm
Das Unternehmen
Schierholz IT Modernisation GmbH ist der Spezialist für die
maschinelle Verarbeitung von Computersprachen
Anwendungsfelder
Analyse von Softwaresystemen beliebiger Komplexität und Größe
Transformation von Sprachen in beliebige andere
- ohne Veränderung der Funktionalität
Reengineering 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.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
33
Slide 4
Einführung Einfache Muster Komplexe Muster Synopsis
Unternehmen Produkte Testprogramm
Produkte
RULAMAN® ist die universelle Umgebung für alle unsere Produkte
SPL – unsere Programmiersprache zur hoch-effizienten Entwicklung von Konvertern
und Analysewerkzeugen
YGGDRASIL® analysiert Softwaresysteme beliebiger Sprachen, Größe und
Komplexität automatisch
Die TRAVERT® Produkte umfassen eine Reihe von Konvertern, z.B.
TRAVERT.A2C transformiert Mainframe Assembler nach ANSI-COBOL
TRAVERT.Ix2J konvertiert Informix 4GL nach Java
TRAVERT.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
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
44
Slide 5
Einführung Einfache Muster Komplexe Muster Synopsis
Unternehmen Produkte Testprogramm
Diese Präsentation ...
... 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: Alles geschieht vollautomatisch!
Das resultierende COBOL Programm erbringt ohne jede Nachbearbeitung fehlerfrei
dieselben Ergebnisse wie das Assembler Programm!
Bevor Sie sich jetzt in die Details vertiefen, empfehlen wir,
die Begleitdateien herunter zu laden und bereit zu halten.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
55
Slide 6
Einführung Einfache Muster Komplexe Muster Synopsis
Unternehmen Produkte Testprogramm
Das Testprogramm A2CP2
Eingabe:
ZIP (PLZ),
requestor ID,
priority
AUTHTAB
ID, authority
name
A2CP2
prüft und
vervollständigt
Eingabesätze
benutzt zwei
interne Tabellen
CITYTAB
ZIP, city name,
inhabitants
Ausgabe:
Liste
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
66
Slide 7
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Einfachere Muster
Umgang mit Kommentaren
Speicherdefinitionen
Relative Sprünge
Transformation von sog. Code Molekülen
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
77
Slide 8
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Verlagern der Programmbeschreibung
***********************************************************************
* 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.1
1.2
Per Default interpretiert A2C den ersten größeren Block von
Ganzzeilenkommentaren als Programmbeschreibung.
Dieser Kommentarblock wird an den Anfang des COBOL
Programms gestellt.
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
***********************************************************************
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
88
Slide 9
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Einfügen der Transformation History
A2C generiert einige Informationen
über das Programm und die Transformation
direkt hinter die Programmbeschreibung.
*----------------------------------------------------------------*
* 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
*----------------------------------------------------------------*
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
99
Slide 10
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Überschriftsblöcke
***********************************************************************
* Print final statistics
***********************************************************************
PRTS14
DC
F'-1'
PRTSTATS DS
0H
8.2
Die Mustererkennung hat PRTSTATS und andere als Subroutinen
identifiziert.
So kann der über »PRTS14« liegende Kommentarblock an den
Beginn der COBOL Subroutine verschoben werden.
***********************************************************************
* Print final statistics
***********************************************************************
PRTSTATS SECTION.
PRTSTATS-Start.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1010
Slide 11
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Umgang mit Inline Kommentaren
A2C bietet verschiedene Optionen zum Umgang mit Inline Kommentaren
1.
2.
3.
TRANSFORM - Umformen in COBOL Ganzzeilenkommentare, die wahlweise vor oder
hinter die betreffende Zeile gestellt werden
REMOVE - Entfernen
KEEP - Umformen in COBOL Inline Kommentare (*>)
Meistens ist Option 2 »REMOVE« am sinnvollsten,
da jeder Assembler Inline Kommentar nur auf ein Statement
bezogen ist. A2C formt jedoch mehrere Statements
zu einem einzigen COBOL Befehl um.
Für diese Demonstration wurde deshalb die Option
»REMOVE« aktiviert.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1111
Slide 12
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Location Counter und Speicheradressen
INREC
INZIP
INREQID
INPRI
DS
DS
DS
DS
DS
DS
ORG
0CL80
CL5
C
CL4
C
C
INREC+L'INREC
requesting authority
3
Das Längenattribut »0« in »0CL80«
wird in ein »FILLER REDEFINES« umgeformt.
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«.
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).
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1212
Slide 13
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Ein relativer Sprung
CP
BL
AP
BAL
MVI
LINECNT,=P'50'
*+14
PAGECNT,=P'1'
R14,PRTHDR
INERR,X'00'
max 50 lines here
no header to be printed
5.1
print header line(s)
reset indicator
6.1
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.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1313
Slide 14
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Code-Moleküle
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 Transformation
Die Ablösung erfolgt
oft mit nur einem einzigen COBOL Befehl
oder eleganten COBOL Konstrukten
Häufig vorkommende Moleküle sind
Selbst-modifizierender Code, vielfach eine sog. B/NOP-Weiche
UNPK mit nachfolgender Vorzeichenkorrektur durch OI
MVI / MVC zur Initialisierung eines Feldes auf ein bestimmtes Zeichen
Der EX-Befehl mit dem zugehörigen auszuführenden Statement
ED / EDMK zur Formatierung numerischer Felder.
Hier erzeugt A2C in Abhängigkeit von den Masken unterschiedliche Redefinitionen
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1414
Slide 15
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Beispiel B/NOP
MAIN
NOP
MVI
PASS01
MAIN+1,X'F0'
next time no file OPEN
4.1
4.2
A2C löst dieses Molekül durch einen Schalter ab,
der anstelle des »NOP« abgefragt wird.
MAIN.
IF SW-1-JUMP
GO TO PASS01
END-IF
SET SW-1-JUMP TO TRUE
Die Definition des Schalters erfolgt automatisch
in der WORKING STORAGE SECTION.
77 SW-1 PIC X VALUE 'N'.
88 SW-1-JUMP VALUE 'Y'.
88 SW-1-NO-JUMP VALUE 'N'.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1515
Slide 16
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Moleküle UNPK/OI und Field Padding
UNPK/OI
UNPK
OI
HDR1PG,PAGECNT
HDR1PG+L'HDR1PG-1,X'F0'
9.1
9.2
A2C generiert
eine „character numeric“ Redefinition des »HDR1PG«.
02 HDR1PG-0ZL3 PIC 999.
Danach kann das Molekül durch einen einfachen »MOVE«
abgelöst werden.
MOVE PAGECNT TO HDR1PG-0ZL3
Field Padding
MVI
MVC
DETAUTH,C'?'
DETAUTH+1(L'DETAUTH-1),DETAUTH
17.1
17.2
Das sog. Field Padding wird durch einen einfachen »MOVE
ALL« ersetzt.
MOVE ALL '?' TO DETAUTH
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1616
Slide 17
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Molekül „EX“
PACK
CVB
BCTR
EX
DWD,INPRI
R2,DWD
R2,0
R2,MVCSTAR
MVCSTAR
MVC
10.4
10.5
Die Mustererkennung geht über den »PACK«
bis zum »EX«
10.1
.
Zusätzlich geht der Zielbefehl (hier ein »MVC«) in die
Mustererkennung ein.
DETPRI(0),STARS
10.2
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”.
MOVE INPRI-0ZL1
MOVE DWD-0PL8
SUBTRACT 1
MOVE STARS
TO DWD-0PL8
TO Demo-R2Lo-S
FROM Demo-R2Lo
TO DETPRI(1:(Demo-R2Lo + 1))
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1717
Slide 18
Einführung Einfache Muster Komplexe Muster Synopsis
Kommentare Adressierung rel. Sprünge Code-Moleküle
Molekül „ED/EDMK“
MVC
ED
DETINH,=X'402020206B2120206B202020'
DETINH,DWD+3
11.2
10.1
Das Muster, das hier in das Zielfeld des »ED« kopiert wird,
dient als Vorlage für eine entsprechende COBOL Definition.
02 DETINH PIC BZZZ,Z99,999.
Nun genügt ein einfacher »MOVE« , um den ED abzulösen.
MOVE DWD-3PL5
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
TO DETINH.
1818
Slide 19
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Komplexe Muster
Transformation des Codes der OS Linkage Convention
Dateien: Definition und Zugriffe
Erkennen und Aufruf von Subroutinen (BAL/BAS)
Transformation von Tabellendaten und -zugriffen
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
1919
Slide 20
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Transformation OS Linkage Convention
SAVE
LR
USING
LA
ST
ST
LR
(14,12)
R12,R15
A2CP2,R12
R2,SAVEAREA
R2,8(R13)
R13,4(R2)
R13,R2
LA
R15,0
L
R13,4(R13)
RETURN (14,12),RC=(15)
2.1
get base address
link to next SA
link to prev SA
2.2
Dies ist nur eines von sehr vielen Mustern und
Varianten
der Programminitialisierung.
Der Code wird erkannt und vollständig entfernt!
2.3
Caller's SA
2.4
Dies ist ein typisches Muster zum Setzen des Returncodes
mit Rücksprung zum Caller.
Hieraus entsteht folgender COBOL Code:
MOVE 0 TO RETURN−CODE
GOBACK.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2020
Slide 21
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
File Input und Output
Das Assembler Programm enthält eine Eingabe- und eine Ausgabedatei.
Folgerichtig müssen u.a. folgende Befehle transformiert werden:
INFILE
INEND
OUTLST
DCB
BLKSIZE=80,LRECL=80,MACRF=GM,EODAD=INEND,DDNAME=INFILE, +14.5
DSORG=PS
DS
0H
end of input file reached
14.3
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
Anm.: Dieses Demoprogramm ist für z/OS geschrieben. Selbstverständlich
unterstützt A2C auch die Makros von z/VSE und BS2000
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2121
Slide 22
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Dateien in 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
© 2008-2015 Schierholz IT Modernisation GmbH
Alle COBOL Statements
zur Definition und zum Zugriff auf Dateien
finden sich im COBOL Programm.
Sie werden - wie alles andere von A2C vollautomatisch erzeugt.
Assembler nach COBOL
2222
Slide 23
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Subroutinen
Eine Vielzahl von Mustern befasst sich mit der Erkennung und Verarbeitung von
Subroutinen.
Hier sehen wir einen Aufruf mit der BAL Instruktion
Verwaltungsregister sind zu identifizieren
Befehle 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.
Der BAL, bzw. BAS wird durch ein COBOL PERFORM ersetzt.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2323
Slide 24
Einführung Einfache Muster Komplexe Muster Synopsis
Rel. Sprünge Subroutinen Tabellen Dateien
Erkennen und Umformen von Subroutinen
Der »BAL«-Aufruf wird zum »PERFORM«.
Die gesamte Routine wird in den
sog. „A2C Subroutine Pool” verschoben.
BAL
R14,PRTHDR
PRTHDR
DS
F
DS
0H
ST
R14,*-4
. . .
L
R14,PRTHDR-4
BR
R14
print header line(s)
save R14
6.1
6.3
6.4
6.5
Am Ende werden nur noch
3 COBOL Befehle benötigt.
Kunden neigen dazu, ihre eigenen Methoden für den
Aufruf von Subroutinen zu haben. Es ist sehr einfach,
A2C weitere Muster „beizubringen“.
PERFORM PRTHDR.
PRTHDR SECTION.
PRTHDR-Start.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2424
Slide 25
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Tabellen – eines der komplexesten Themen
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 Spalten
Tabellen werden zu COBOL Tabellen umgeformt
Definition aller Datenzeilen
Redefinition der gesamten Tabelle über eine OCCURS Klausel
Automatische Generierung von Tabellenindex und des Tabellenmaximums
Zugriffsmechanismen werden erkannt
Kopf-, fuß- oder zählergesteuerte Schleife
programmiert mit BXH, BXLE, BCT oder als ordinäre Schleife mit Sprung nach oben
Registeradressierung von Zellen oder Zeilen wird in Zugriff über Index transformiert
Ende-Abfrage auf Delimiter, z.B. X‘FF‘ wird umgesetzt.
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2525
Slide 26
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Tabellen
Die Tabellen AUTHTAB und CITYTAB (im Assembler-Quelltext ab Zeile 149 bzw. 274)
werden zu COBOL umgeformt.
Das Ergebnis findet sich im COBOL Sourcecode ab Zeile 147 bzw. 178.
GET010
DS
LA
GETLOOP DS
CLI
BE
CLC
BE
LA
B
GETFD
DS
MVC
B
GETNOTFD DS
MVI
MVC
MVC
AP
MVI
GETEND
BR
0H
R3,AUTHTAB
0H
0(R3),X'FF'
GETNOTFD
not found
INREQID,0(R3)
GETFD
match!
R3,24(R3)
Dieser Zugriff auf »AUTHTAB« findet sich ab Zeile 166 im
GETLOOP
Assembler Quelltext.
0H
DETAUTH,4(R3)
Wie A2C diese Logik vollautomatisch in COBOL konvertiert,
GETEND
sehen sie auf der nächsten Seite.
0H
DETAUTH,C'?'
DETAUTH+1(L'DETAUTH-1),DETAUTH
DETAUTH(L'INREQID),INREQID
ERRCNT,=P'1'
INERR,X'FF'
R14
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2626
Slide 27
Einführung Einfache Muster Komplexe Muster Synopsis
Linkage Dateien Subroutinen Tabellen
Tabellen
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).
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.
© 2008-2015 Schierholz IT Modernisation GmbH
A2C hat u.a. den Tabellenindex
»AuthTbl-Index« und eine Redefinition der
AUTHTAB erzeugt.
A2C transformiert den AssemblerTabellenzugriff (siehe vorige Seite)
vollautomatisch in die nebenstehende
COBOL Sequenz.
Assembler nach COBOL
2727
Slide 28
Einführung Einfache Muster Komplexe Muster Synopsis
Synopsis
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 an
[email protected].
© 2008-2015 Schierholz IT Modernisation GmbH
Assembler nach COBOL
2828