Assember
How can one transform without documentation?
Well, there is such a thing as 100% reliable program documentation: it’s the hexadecimal object code that Rashid uses as the ultimate source of information.
Only the object code determines the logic and flow of a program. Therefore, if you are able to use it, the generated COBOL program will always be the exact logical representation of the assembly program.
Rashid thus requires as input all fully expanded conversion lists generated with HLASM or ASSEMBH.
Why COBOL as a target language?
COBOL was developed at a time when mainframe programs could only be written in autocoder and assembly language. To increase programmer productivity, COBOL was designed in such a way that assembly programmers could quickly adapt to the new language.
As a result, COBOL is a kind of „assembler in disguise.“ Its structure and operation are very similar to the assembly language thought process. Therefore, it makes perfect technical sense to start with COBOL. From there, it’s easy to automate the process to other languages.
Using a demo program, we’ll show how COBOL and two Java derivatives can be automatically generated from an assembly program.

Thanks to the integrated refactoring algorithms, every generated COBOL code is well-structured and easily readable. Therefore, it can be immediately handed over to regular program maintenance.
Methodology
However, for the project to be successful, it is essential to know all the details of every single line of the application code in advance.
- Therefore, the Rashid Assessment examines all called system and user macros, coding conventions, and programmer tricks and habits.
- It analyzes register usage, detects self-modifying code, and stores everything in the Rashid Metadata Database.
- Rashid also creates a complete inventory of all data fields, their properties, and their relationships to one another.
- Because the metadata of all entities is available when a single object is transformed, many rules, such as those for re-engineering, can operate with reference to all other statements of all other entities.
- Based on this metadata, a project-specific transformation engine is built by selecting hundreds of transformation rules from the Rashid Rule Repository.
- This engine transforms all assembly programs in a single pass.
- Each pass reveals new opportunities to increase the level of automation, which are then added to the transformation engine.
- Situations that occur rarely or only once are handled by singular, project-specific rules.
- After the final pass, the transformation engine has learned how to convert the entire assembly application into functionally identical COBOL: 100% automatically.
Monitoring
Large assembler projects, in particular, require careful monitoring and control. Therefore, the Transformation Engine is integrated into a monitoring process.

Full automation of the Assembler Transformation
Complete automation has a number of advantages, it…
- Brings calm to the project
- Dramatically reduces the risk of errors
- Allows accurate prediction of duration, effort, and costs
- Significantly shortens project duration
- Makes the project independent of regular program maintenance
- Eliminates human error, which is otherwise unavoidable in large projects
- Allows the transformation to be repeated as often as needed without effort
- Enables a complete transformation and final integration test to be performed within a few hours before the application can go into production as a COBOL implementation.
Which platforms are supported?
The Rashid Assembler Transformation is available for z/OS, TPF, VSE BS1000 and BS2000.
