Automatic migration of DFSORT workloads to SyncSort wins award at IEEE conference
A vital part of the ecosystem of applications running on mainframes is the DFSORT program. DFSORT can be used for sorting and reformatting data, as well as multiple other functionalities, such as reporting. To be able to include DFSORT workloads in migration projects from the mainframe to open systems, Raincode Labs has developed a converter for DFSORT program control statements.
This converter takes DFSORT invocations as specified in a JCL job and seamlessly produces the equivalent statements for SyncSort DMExpress before calling DMExpress with these translated statements. SyncSort is a historical competitor to DFSORT with a similar feature set, and DMExpress runs on open systems. The Raincode Labs converter thus makes it possible to automatically migrate DFSORT workloads to SYNCSORT DMExpress on open systems.
The developers of the converter have authored a scientific article that describes its design and implementation. This paper received the Distinguished Engineering Paper Award at the 20th IEEE International Working Conference on Source Code Analysis and Manipulation http://www.ieee-scam.org/2020/ , where it was also presented. It describes how the converter performs abstract interpretation of the DFSORT program control statements by considering the different steps in the DFSORT processing pipeline at translation time. In addition to describing how the converter treats the DFSORT pipeline, the article also shows how its design allowed for the straightforward implementation of unexpected changes in requirements for the generated output.
The translator is written in C# and is a three-phase process consisting of a parser, a model builder and a code generator. The parser creates an abstract syntax tree. The builder creates a model from it by performing abstract interpretation of the steps in the DFSORT pipeline. The code generator then performs a post-order traversal of this graph, starting from three different entry points. More details can be found in the paper ‘Engineering a Converter between two Domain-Specific Languages for Sorting’, presented at the 20th IEEE International Working Conference on Source Code Analysis and Manipulation, September 27- 28, 2020, Adelaide, Australia (Virtually)