Title | ||
---|---|---|
Experiences from reengineering and modularizing a legacy software generator with a projectional language workbench. |
Abstract | ||
---|---|---|
We present a case study of migrating a legacy language infrastructure and its codebase to a projectional language workbench. Our subject is the generator tool ADS used for generating COBOL code for critical software systems. We decompose the ADS language into smaller sub-languages, which we implement as individual DSLs in the projectional language workbench JetBrains Meta Programming System (MPS). Our focus is on ADS' preprocessor sub-language, used to realize static variability by conditionally including or parameterizing target code. The modularization of ADS supports future extensions and tailoring the language infrastructure to the needs of individual customers. We re-implement the generation process of target code as chained model-to-model and model-to-text transformations. For migrating existing ADS code, we implement an importer relying on a parser in order to create a model in MPS. We validate the approach using an ADS codebase for handling car registrations in the Netherlands. Our case study shows the feasibility and benefits (e.g., language extensibility and modern editors) of the migration, but also smaller caveats (e.g., small syntax adaptations, the necessity of import tools, and providing training to developers). Our experiences are useful for practitioners attempting a similar migration of legacy generators to a projectional language workbench. |
Year | DOI | Venue |
---|---|---|
2016 | 10.1145/2934466.2962733 | SPLC |
Field | DocType | Citations |
Metaprogramming,Codebase,Programming language,COBOL,Software engineering,Computer science,Reverse engineering,Software system,Modular programming,Parsing,Legacy system | Conference | 1 |
PageRank | References | Authors |
0.35 | 12 | 3 |
Name | Order | Citations | PageRank |
---|---|---|---|
Max Lillack | 1 | 22 | 3.03 |
Thorsten Berger | 2 | 603 | 34.35 |
Regina Hebig | 3 | 179 | 24.24 |