Home | COBOL->Java-Migration | Tool-Architektur
www.proetcon.de | COBOL->Java-Migration | Tool-Architektur
  [CoJaC - Tool-Architektur] [CoJaC]
CoJaC – COBOL to Java Converter – Tool-Architektur
CoJaC basiert auf der Architektur eines Compilers, welche von pro et con für die technischen Belange von Transformations- werkzeugen weiterentwickelt wurde. Die nachfolgende Graphik zeigt diese Architektur:

[CoJaC - Tool-Architektur]
Die Architektur folgt dem klassischen Compilermodell. Scannen, Parsen und Syntaxbaumverwaltung sind klassische Compilerfunktionen. Im Gegensatz zum Compiler bleiben COBOL-Kommentare und Präprozessorinformationen während des Konvertierungsprozesses erhalten, um sie optional in den Java-Code einzufügen.

Wie beim klassischen Compiler auch werden Präprozessor-Befehle vor dem Scannen ausgeführt. Diese Informationen werden ebenfalls erhalten. Zum Beispiel dienen die COPY-Befehle in der Phase Generierung der Aufteilung des Java-Zielprogramms auf verschiedene Java-Pakete.

Die Architektur spiegelt eine strikte Trennung zwischen Quell- und Zielrepräsentation wider. Der Parser liefert einen attributierten COBOL-Syntaxbaum, der Transformator realisiert daraus einen attributierten Java-Syntaxbaum.

Die Komponente Postprozessor ist neu gegenüber dem klassischen Compilermodell. Seine Aufgabe ist die Zerteilung des attributierten Java-Syntaxbaumes in Teilsyntaxbäume und die optionale Integration der Kommentare.

Der Generator schreibt physisch Java-Code durch Traversieren einzelner Syntaxtteilbäume. Es entstehen mehrere Java-Klassen, aufgeteilt in Packages. Die formatierte Generierung kann entsprechend Nutzervorgaben konfiguriert werden.

Bei der Entwicklung von CoJaC wurden firmeneigene Metawerkzeuge verwendet. BTRACC ist ein Parsergenerator, welcher Parser nach dem Backtracking-Verfahren generiert. TransR erlaubt die deskriptive Beschreibung von Abbildungsregeln zwischen Quell- und Zielsyntaxbäumen. JGen und JFormat generieren und formatieren Java-Code aus Syntaxbäumen.

Compilerbasiert und unter Nutzung von Metawerkzeugen generiert sind die Ursachen dafür, daß CoJaC nicht nur einen Prototypen, sondern ein kommerziell einsetzbares Werkzeug darstellt.
Der o.a. Text kann Firmenbezeichnungen, Marken, Kennzeichen oder Produktnamen enthalten, die den jeweiligen Eigentümern gehören. Ihre Wiedergabe erfolgt nicht in marken- oder zeichenrechtlichem Sinn.