Assembler to C migration using the FermaT transformation system

The FermaT transformation system, based on research carried out over the last twelve years (1987-99) at Durham University and Software Migrations Ltd., is an industrial-strength formal transformation engine with many applications in program comprehension and language migration. The paper describes one application of the system: the migration of IBM 370 Assembler code to equivalent, maintainable C code. We present an example of using the tool to migrate a small, but complex, assembler module to C with no manual intervention required. We briefly discuss a mass migration exercise where 1925 assembler modules were successfully migrated to C code.

[1]  M. P. Ward,et al.  Program Analysis by Formal Transformation , 1996, Comput. J..

[2]  Martin P. Ward Language-Oriented Programming , 1994, Softw. Concepts Tools.

[3]  William Hanf,et al.  Review: Carol R. Karp, Languages with Expressions of Infinite Length , 1968 .

[4]  Glenn D. Bergland,et al.  A Guided Tour of Program Design Methodologies , 1981, Computer.

[5]  Keith H. Bennett,et al.  Formal Methods to Aid the Evolution of Software , 1995, Int. J. Softw. Eng. Knowl. Eng..

[6]  Keith H. Bennett,et al.  Formal methods for legacy systems , 1995, J. Softw. Maintenance Res. Pract..

[7]  Erwin Engeler,et al.  Languages with expressions of infinite length , 1966 .

[8]  Martin P. Ward,et al.  A Multipurpose Backtracking Algorithm , 1994, J. Symb. Comput..

[9]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[10]  Helmut A. Partsch,et al.  Specification and transformation of programs , 1990 .

[11]  Martin Ward Proving program refinements and transformations , 1986 .

[12]  Martin P. Ward Derivation of Data Intensive Algorithms by Formal Transformation: The Schnorr-Waite Graph Marking Algorithm , 1996, IEEE Trans. Software Eng..

[13]  Friedrich L. Bauer,et al.  Formal Program Construction by Transformations-Computer-Aided, Intuition-Guided Programming , 1989, IEEE Trans. Software Eng..

[14]  Ralph-Johan Back,et al.  Refinement Calculus , 1998, Graduate Texts in Computer Science.

[15]  Martin P. Ward Abstracting a specification from code , 1993, J. Softw. Maintenance Res. Pract..

[16]  M. P. Ward,et al.  Foundations for a Practical Theory of Program Refinement and Transformation , 1994 .