Translation Technology

To achieve both low costs and high quality, the technology developed by Software Resources International to convert from an older programming language to C++ or C is partially automated and comparable to compilation. The main difference is in the code generation phase, involving substantial processing to obtain the much more complex constructions in the target code than assembler code normally contains. Functionality must be preserved in the resulting source code, and readability requirements typically include a manual post-processing cleanup. A typical conversion process (300 K to 1 M lines of code) has the following steps:

1. Project design
The tasks are specified, problems identified and solutions proposed. The translator customization requirements, depending on language, coding style and future use of the output, are determined.

2. Tuning, testing and applying the translator
The tuning precision can increase with the increase in the amount of code provided, as repeating developer specific constructs can be automatically recognized. At the end of this step the source code is automatically converted.

3. Providing the supplementary library
This library emulates the original language runtime system. If the operating system is also changed, the library also contains OS emulating functions.

4. Source code improvement
No automatic converter can produce the listings fully conforming to the target programming language (unless the language concepts are identical to the starting language). The duration of the source code improvement phase depends on the customer's requirements on code maintainability and the applicable coding standards.

5. Testing of the software is performed,
ranging from assuring error free compilation to ensuring a fully compatible new application, depending on the options chosen.