Code migration through transformations: an experience report

One approach to dealing with spiraling maintenance costs, manpower shortages and frequent breakdowns for legacy code is to "migrate" the code into a new platform and/or programming language. The objective of this paper is to explore the feasibility of semi-automating such a migration process in the presence of performance and other constraints for the migrant code. In particular, the paper reports on an experiment involving a medium-size software system written in PL/IX. Several modules of the system were migrated to C++, first by hand and then through a semiautomatic tool. After discovering that the migrant code was performing up to 50% slower than the original, a second migration effort was conducted which improved the performance of the migrant code substantially. The paper reports on the transformation techniques used by the transformation process and the effectiveness of the prototype tools that were developed. In addition, the paper presents preliminary results on the evaluation of the experiment.

[1]  Chris Verhoef,et al.  Generation of components for software renovation factories from context-free grammars , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[2]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[3]  Brenda S. Baker Parameterized Pattern Matching: Algorithms and Applications , 1996, J. Comput. Syst. Sci..

[4]  J. Howard Johnson,et al.  Substring matching for clone detection and change tracking , 1994, Proceedings 1994 International Conference on Software Maintenance.

[5]  Norihisa Doi,et al.  SPiCE: a system for translating Smalltalk programs into a C environment , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[6]  J. Christopher Ramming,et al.  A*: a language for implementing language processors , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[7]  Michael L. Van de Vanter,et al.  The Pan language-based editing system , 1992, TSEM.

[8]  S. I. Feldman,et al.  A Fortran to C converter , 1990, FORF.

[9]  C. V. Ramamoorthy,et al.  The C Information Abstraction System , 1990, IEEE Trans. Software Eng..

[10]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[11]  David H. Bailey,et al.  Algorithms and applications , 1988 .

[12]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

[13]  J. Melek [The system]. , 1973, Pielegniarka i polozna.