source-to-source; compiler; migration; reverse engineering; IBM HLASM; C; C++
en
Abstract:
Großrechner sind weiterhin im Betrieb, um das tägliche Geschäft von Organisationen mit Hilfe von bestehenden Softwarelösungen zu bewältigen. Sobald sie allerdings abgelöst werden sollen, muss eine Möglichkeit gefunden werden, die bestehenden Geschäftsanwendungen auf eine neue Plattform zu migrieren. Eine Neuentwicklung erlaubt den Einsatz von modernen Programmiersprachen, Frameworks und Techniken, ist allerdings in der Praxis oftmals nur schwer durchführbar bedingt durch das mögliche Fehlen von Dokumentation der Programme und Spezifikationen der Anforderungen sowie die enormen notwendigen Ressourcen zum Entwickeln und Testen der Anwendungen. Diese Arbeit beschäftigt sich mit der Migration von Geschäftsanwendungen, die für IBM Großrechner in Assembler geschrieben wurden (HLASM), durch automatisierte Übersetzung in portablen C/C++ Code. Es wird gezeigt, wie verschiedene Compiler- und Analysetechniken eingesetzt werden können, um aus linearem Assemblercode eine strukturierte Darstellung der Programmlogik zu erreichen. Dadurch ist es nicht nur möglich, den Großrechner zu verlassen, sondern auch die Lesbarkeit der Programme und daraus folgend die Wartbarkeit eben dieser zu verbessern. Die beschriebene Implementierung wurde mit Hilfe von produktiven Assembler-Programmen von einer größeren Organisation evaluiert.
de
Mainframe computers are still running legacy applications to handle day-to-day business for organizations. At the time when the mainframe should be replaced, it has to be discussed how business applications could be transferred to the new platform. Redeveloping from scratch allows the usage of modern languages, frameworks and techniques but is difficult due to the possible lack of documentation and requirement specifications and the vast efforts required for developing, testing and integrating the application. This work will discuss the migration of business applications written in assembler for IBM mainframes (HLASM) using automatic translation to portable C/C++ code. We will show the benefit of different compiler and analysis techniques transforming the linear assembler code to a structured representation that will not only help us leaving the mainframe but also increasing readability and thus maintainability of the applications. The implementation has been evaluated using a set of legacy assembler programs used in production from a larger organization.
en
Additional information:
Zusammenfassung in deutscher Sprache Titelübersetzung des Autors: Migrating IBM HLASM to partable C