Specific Levels of Refinement
Depending on the quality requirements of the resulting source code, source code translation can be done with three levels of refinement:
1. Pure language substitution,
which is based on semi-automatic language translation. Only where the automatic process does not generate error free code are manual corrections applied. In this case the new source code is usually not easy to maintain, but the application will be fully functional. A typical example for such simple replacement is the move of 'legacy' applications, which do not require further development, to a new platform or operating system.
2. Language conversion with code cleanup.
This is essentially the first step with a manual improvement in the structure and the readability of the target source code. This improvement is made based on engineering standards from either SRI or the customer. Typically, this level of conversion is used when current applications are migrated to a new platform, and future minimal adaptations are expected.
3. Language conversion with redesign.
After code cleanup, the sources still have the general layout as provided by the source language. The final step, and the most complete form of language conversion, is the redesign of the program structure in order to fit with standard C or C++ concepts and style. This method will generally be applied when applications not only move to a new platform, but also have to be integrated into a new architecture (e.g. client - server), or are used as a basis for further development. Such structural redesign should take place before new functionality is introduced.
