20.11.2008 News
Neue Version 2.1 des Parsergenerators BTRACC verfügbar
Der Einsatz eines Parsergenerators ist notwendig, wenn Werkzeuge für die Software-Migration und das Reengineering neu entwickelt werden sollen. Dabei existieren folgende Anforderungen an den Parsergenerator:
- Verarbeitung komplexer Grammatiken (insbesondere bei antiquierten Programmier- und Skriptsprachen wie z.B. COBOL, PL/I, CICS, UTM, SDF, …),
- Verwendung der in Dokumentationen vorgegebenen Grammatik ohne aufwendige Umstellung zur Erreichung einer LL(n)- oder LR(n)-Eigenschaft,
- Verarbeitung mehrerer Dialekte in einem Werkzeug,
- einfache Integration neuer, syntaktischer Konstruktionen ohne Umbau der existierenden Grammatik.
Am Markt verfügbare Parsergeneratoren (YACC, COCO/R, PCCTS, .ANTLR, JavaCC) werden diesen Anforderungen nicht gerecht. Insbesondere die Forderung, die in Dokumentationen verfügbare Syntax ohne Umstellungen zu verwenden und Erweiterungen kostengünstig integrieren zu können, ist nicht erfüllt. Eine Erweiterung einer komplexen YACC-Grammatik z.B. führt in der Regel zu einer Reihe von Konflikten, welche nur mit großem Aufwand beseitigt werden können.
Aus diesem Grund entwickelte pro et con einen eigenen Parsergenerator BTRACC (Backtracking Compiler Compiler), der auf Basis des Backtracking-Verfahrens arbeitet und die oben genannten Nachteile beseitigt.
Mit BTRACC wurden Parser für C, COBOL, CICS, Java, NATURAL, PL/I, SDF, SCREEN COBOL, SPL, TAL und SQL entwickelt. Sie bilden die Basis für die kommerziellen Migrations- und Reengineering-Werkzeuge der Firma.
Die aktuelle Version 2.1 von BTRACC zeichnet sich durch folgende, neue Eigenschaften aus:
- Es wird optional C‑Code (kompilierfähig auch mit C++) und Java-Code generiert. Damit ist BTRACC für alle Parser verwendbar, welche neben C/C++ auch im Java-Umfeld eingesetzt werden.
- Grundsätzlich wird auf
goto
verzichtet und strukturierter Code generiert. - Es erfolgt eine genaue Positionsangabe.
- Es wird eine vollständige FIRST- und FOLLOW-Mengen-Berechnung durchgeführt. Dadurch verbessert sich die Laufzeit der generierten Parser.
- Konstrukte für die 1- bis n‑fache (
{}+
) und die n‑m‑fache ({}:n-m
) Wiederholung wurden eingeführt. Das erleichtert das Entwickeln einer Sprachgrammatik entscheidend. - Es existiert ein visueller Debugger.
BTRACC in der neuen Version 2.1 steht ab sofort für den kommerziellen Einsatz zur Verfügung. Damit wird pro et con in die Lage versetzt, in kurzer Zeit und kostengünstig neue Migrationswerkzeuge entsprechend spezieller Kundenanforderungen zu entwickeln.
Die Weiterentwicklung von BTRACC unterstreicht erneut die führende Rolle von pro et con auf dem Gebiet der wissenschaftlich fundierten Software-Migration und des Software Reengineering.