Die vollautomatische Transformation mit TRAVERT®.A2C

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
Befehlssatz und Struktur
On the Criteria to Be Used in Decomposing Systems into Modules
Seminar Stochastik im WS 02/03
Objektorientierung mit VBA
Java: Dynamische Datentypen
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Modularisierungstechniken
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die Programmierung Datensammlung
Einführung MySQL mit PHP
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
Tipps und Tricks für Word 2000 Aytac, Felix, Steffen 04/05.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Java programmieren mit JavaKara
Druckerinstallation HP1050C
Wir bauen uns eine Webapplikation!
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
HORIZONT 1 XINFO ® XINFO - User Training Das IT-Informations-System Garmischer Str. 8 D München Tel ++49(0)89 /
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Präsentation der Software FlexPDE5
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
FORTRAN 77.
Einführung in die Programmiersprache C 4
LabView Erste Schritte.
XINFO HORIZONT XINFO in der Anwendungsentwicklung
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
HORIZONT 1 XINFO ® Das IT - Informationssystem Assembler HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem CICS HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Autor: Peter Pfeiffer Seite: Peter Pfeiffer Memeler Str Bad Oeynhausen Datentransfer Zwischen dem Eingabemodul und den mitgelieferten.
REBOL. Was ist REBOL frei verfügbar plattformübergreifend highly reflective flexibel kompakt interpretiert.
Unterprogramme in JAVA
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Dynamische Webseiten-Generierung
Einführung in PHP.
Einführung in PHP 5.
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
Structured Query Language
CSS Cascading Style Sheets
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
HTML Hypertext Markup Language
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Excel-Tool: Beschwerdeanalyse  Folie 1 von Bitte Makros aktivieren Das Excel-Tool funktioniert nur mit eingeschalteten Makros. Eventuell erhalten.
Dirk Schuirmann W+M AG Theorie in der Praxis 1. CPGJDBC Schreiben aus dem CICS Lesen aus dem Batch 2. Programmdokumentation 3. Preismodell bei CA.
DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008.
SAS Backstage Biljana Gigić1, Andreas Deckert2
Das IT - Informationssystem
Datenbanksysteme Diese Präsentation soll Ihnen bei der Vorbereitung auf die Prüfung. Ja ?!
The IT–Information System
Implementieren von Klassen
 Präsentation transkript:

Die vollautomatische Transformation mit TRAVERT®.A2C 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

Inhalt Einführung Einfachere Muster Komplexe und sehr komplexe Muster 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

maschinelle Verarbeitung von Computersprachen Einführung Einfache Muster Komplexe Muster Synopsis Unternehmen Produkte Testprogramm Das Unternehmen Schierholz IT Modernisation GmbH ist der Spezialist für die 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. maschinelle Verarbeitung von Computersprachen © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

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

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: 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. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Das Testprogramm A2CP2 Eingabe: ZIP (PLZ), requestor ID, priority 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

Einfachere Muster Umgang mit Kommentaren Speicherdefinitionen 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

Verlagern der Programmbeschreibung Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle Verlagern der Programmbeschreibung *********************************************************************** 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 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

Einfügen der Transformation History 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

Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle Überschriftsblöcke *********************************************************************** 8.2 * Print final statistics *********************************************************************** PRTS14 DC F'-1' PRTSTATS DS 0H 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

Umgang mit Inline Kommentaren 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. TRANSFORM - Umformen in COBOL Ganzzeilenkommentare, die wahlweise vor oder hinter die betreffende Zeile gestellt werden 2. REMOVE - Entfernen 3. 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. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Location Counter und Speicheradressen Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle Location Counter und Speicheradressen INREC DS 0CL80 INZIP DS CL5 DS C INREQID DS CL4 requesting authority INPRI DS C ORG INREC+L'INREC 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 INPRI PIC X. 02 FILLER PIC X(68). © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Ein relativer Sprung Der »BL *+14« überspringt den »AP« und den »BAL«. Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle Ein relativer Sprung CP LINECNT,=P'50' max 50 lines here BL *+14 no header to be printed 5.1 AP PAGECNT,=P'1' BAL R14,PRTHDR print header line(s) 6.1 MVI 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. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

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 Selbstmodifizierender Code, vielfach eine sog. B/NOP-Weiche UNPK mit nachfolgender Vorzeichen Korrektur 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

Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle Beispiel B/NOP MAIN NOP PASS01 4.1 MVI MAIN+1,X'F0' next time no file OPEN 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

Moleküle UNPK/OI und Field Padding Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle Moleküle UNPK/OI und Field Padding UNPK HDR1PG,PAGECNT 9.1 OI HDR1PG+L'HDR1PG-1,X'F0' 9.2 UNPK/OI 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 MVI DETAUTH,C'?' 17.1 MVC DETAUTH+1(L'DETAUTH-1),DETAUTH 17.2 Field Padding Das sog. Field Padding wird durch einen einfachen »MOVE ALL« ersetzt. MOVE ALL '?' TO DETAUTH © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Molekül „EX“ Die Mustererkennung geht über den »PACK« bis zum »EX« . Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle Molekül „EX“ PACK DWD,INPRI 10.4 CVB R2,DWD BCTR R2,0 10.5 EX R2,MVCSTAR 10.1 Die Mustererkennung geht über den »PACK« bis zum »EX« . Zusätzlich geht der Zielbefehl (hier ein »MVC«) in die Mustererkennung ein. MVCSTAR MVC 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 TO DWD-0PL8 MOVE DWD-0PL8 TO Demo-R2Lo-S SUBTRACT 1 FROM Demo-R2Lo MOVE STARS TO DETPRI(1:(Demo-R2Lo + 1)) © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Nun genügt ein einfacher »MOVE« , um den ED abzulösen. Einführung Einfache Muster Komplexe Muster Synopsis Kommentare Adressierung rel. Sprünge Code-Moleküle Molekül „ED/EDMK“ MVC DETINH,=X'402020206B2120206B202020' 11.2 ED 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. 02 DETINH PIC BZZZ,Z99,999. Nun genügt ein einfacher »MOVE« , um den ED abzulösen. MOVE DWD-3PL5 TO DETINH. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Komplexe Muster Transformation des Codes der OS Linkage Convention 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

Transformation OS Linkage Convention Einführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen Transformation OS Linkage Convention 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 Dies ist nur eines von sehr vielen Mustern und Varianten der Programminitialisierung. Der Code wird erkannt und vollständig entfernt! LA R15,0 2.3 L R13,4(R13) Caller's SA RETURN (14,12),RC=(15) 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

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: 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.3 OUTLST DCB BLKSIZE=133,LRECL=133,MACRF=PM,RECFM=A,DDNAME=OUTLST, +15.4 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 © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

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 Alle COBOL Statements zur Definition und zum Zugriff auf Dateien finden sich im COBOL Programm, das wie alles andere von A2C vollautomatisch erzeugt wurde. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

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 und der BAL, bzw. BAS durch ein COBOL PERFORM ersetzt. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Erkennen und Umformen von Subroutinen 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 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 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 immer weitere Muster „beizubringen“. PERFORM PRTHDR. PRTHDR SECTION. PRTHDR-Start. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Tabellen – eines der komplexesten Themen 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 Branch 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

Das Ergebnis findet sich im COBOL Sourcecode ab Zeile 147 bzw. 178. Einführung Einfache Muster Komplexe Muster Synopsis Linkage Dateien Subroutinen Tabellen Tabellen 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. 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 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. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Tabellen A2C hat u.a. den Tabellenindex 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). A2C hat u.a. den Tabellenindex »AuthTbl-Index« und eine Redefinition der AUTHTAB erzeugt. 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. A2C transformiert den Assembler-Tabellenzugriff (siehe vorige Seite) vollautomatisch in die nebenstehende COBOL Sequenz. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL

Einführung Einfache Muster Komplexe Muster 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 info@it-modernisation.com. © 2008-2015 Schierholz IT Modernisation GmbH Assembler nach COBOL