Results 1  10
of
21
Assembler to C Migration using the FermaT Transformation System
 In IEEE International Conference on Software Maintenance (ICSM’99
, 1999
"... The FermaT transformation system, based on research carried out over the last twelve years at Durham University and Software Migrations Ltd., is an industrialstrength formal transformation engine with many applications in program comprehension and language migration. This paper describes one applic ..."
Abstract

Cited by 41 (8 self)
 Add to MetaCart
The FermaT transformation system, based on research carried out over the last twelve years at Durham University and Software Migrations Ltd., is an industrialstrength formal transformation engine with many applications in program comprehension and language migration. This 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 1,925 assembler modules were sucessfully migrated to C code. Keywords: Assembler, Migration, Comprehension, Formal Methods, WSL, Wide Spectrum Language, Program Transformation, Legacy Systems, Restructuring.
Foundations for a Practical Theory of Program Refinement and Transformation
, 1994
"... A wide spectrum language is presented, which is designed to facilitate the proof of the correctness of refinements and transformations. Two different proof methods are introduced and used to prove some fundamental transformations, including a general induction rule (Lemma 3.9) which enables transfor ..."
Abstract

Cited by 21 (14 self)
 Add to MetaCart
A wide spectrum language is presented, which is designed to facilitate the proof of the correctness of refinements and transformations. Two different proof methods are introduced and used to prove some fundamental transformations, including a general induction rule (Lemma 3.9) which enables transformations of recursive and iterative programs to be proved by induction on their finite truncations. A theorem for proving the correctness of recursive implementations is presented (Theorem 3.21), which provides a method for introducing a loop, without requiring the user to provide a loop invariant. A powerful, general purpose, transformation for removing or introducing recursion is described and used in a case study (Section 5) in which we take a small, but highly complex, program and apply formal transformations in order to uncover an abstract specification of the behaviour of the program. The transformation theory supports a transformation system, called FermaT, in which the applicability conditions of each transformation (and hence the correctness of the result) are mechanically verified. These results together considerably simplify the construction of viable program transformation tools; practical consequences are briefly discussed.
Do Program Transformations Help Reverse Engineering?
 In IEEE International Conference on Software Maintenance (ICSM'98
, 1998
"... Program transformations have been advocated as a method for accomplishing reverse engineering. The hypothesis is that the original source code can be progressively transformed into alternative forms, but with the same semantics. At the end of the process, an equivalent program is acquired, but one w ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
(Show Context)
Program transformations have been advocated as a method for accomplishing reverse engineering. The hypothesis is that the original source code can be progressively transformed into alternative forms, but with the same semantics. At the end of the process, an equivalent program is acquired, but one which is much easier to understand and more maintainable. We have been undertaking an extensive programme of research over twelve years into the design and development of transformations for the support of software maintenance. The paper very briefly explains the theory, practice and tool support for transformational systems, but does not present new theoretical results. The main results are on an analysis of the strengths and weaknesses of the approach, based on experience with case studies and industrial applications. The evaluation framework used (called DERE) is that presented in [5]. It is hoped that the results will be of benefit to industry, who might be considering using the technolog...
Analysis of dynamic memory access using amorphous slicing
 In IEEE International Conference on Software Maintenance (ICSM’98
, 1998
"... ..."
(Show Context)
Recursion Removal/Introduction by Formal Transformation: An Aid to Program Development and Program Comprehension
 Comput. J
, 1999
"... ..."
(Show Context)
The Formal Transformation Approach to Source Code Analysis and Manipulation
, 2001
"... In this paper we give a brief introduction to the foundations of WSL transformation theory and describe some applications to program slicing. We introduce some generalisations of traditional slicing, amorphous slicing and conditioned slicing which are possible in the framework of WSL transformations ..."
Abstract

Cited by 8 (3 self)
 Add to MetaCart
In this paper we give a brief introduction to the foundations of WSL transformation theory and describe some applications to program slicing. We introduce some generalisations of traditional slicing, amorphous slicing and conditioned slicing which are possible in the framework of WSL transformations. One generalisation is "semantic slicing" which combines slicing and abstraction to a specification.
METAWSL and MetaTransformations in the FermaT Transformation System
 IN COMPSAC
, 2005
"... A program transformation is an operation which can be applied to any program (satisfying the transformations applicability conditions) and returns a semantically equivalent program. In the FermaT transformation system program transformations are carried out in a wide spectrum language, called WSL, a ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
A program transformation is an operation which can be applied to any program (satisfying the transformations applicability conditions) and returns a semantically equivalent program. In the FermaT transformation system program transformations are carried out in a wide spectrum language, called WSL, and the transformations themselves are written in an extension of WSL called METAWSL which was specifically designed to be a domainspecific language for writing program transformations. As a result, FermaT is capable of transforming its own source code via metatransformations. This paper introduces METAWSL and describes some applications of metatransformations in the FermaT system.
Specifications from Source Code  Alchemists' Dream or Practical Reality?
, 1994
"... We describe a method for extracting highlevel specifications from unstructured source code. The method is based on a theory of program re nement and transformation, which is used as the bases for the development of a catalogue of powerful semanticspreserving transformations. Each transformation is ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
We describe a method for extracting highlevel specifications from unstructured source code. The method is based on a theory of program re nement and transformation, which is used as the bases for the development of a catalogue of powerful semanticspreserving transformations. Each transformation is an operation on a program which has a mechanicallycheckable correctness condition, and which has been rigorously proved to produce a semantically equivalent result. The transformations are carried out in a wide spectrum programming language (called WSL). This language includes highlevel specifications as well as lowlevel programming constructs. As a result, the formal reverse engineering process (from source code to equivalent specifications) and the redevelopment process (refinement of specifications into source code) can both be carried out within a single language and transformation theory. We also discuss a tool (FermaT) which has been developed to support this approach to reengineerin...
I.: Automatic Reengineering in MDA Using Rewriting Logic as Transformation Engine
 9th European Conference on Software Maintenance and
, 2005
"... Legacy systems are information systems that have been developed by means of methods, tools and database management systems that have become obsolete, but they are still being used due to their reliability. As time goes on, the maintenance of this software becomes more complex, expensive and painful. ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
(Show Context)
Legacy systems are information systems that have been developed by means of methods, tools and database management systems that have become obsolete, but they are still being used due to their reliability. As time goes on, the maintenance of this software becomes more complex, expensive and painful. The OMG’s MDA initiative provides some guides to develop software that raise models and transformations between them as first class citizens. This point of view provides a precise way to develop a new application from the legacy one. The MOMENT Framework supports automatic formal model transformations in MDA. This model transformation approach is based on the algebraic specification of models and benefits from mature term rewriting system technology to perform model transformation using rewriting logic. In this paper, we present how we apply this formal transformation mechanism to recover a legacy relational database, obtaining a UMLbased application. This approach keeps the legacy knowledge by pumping the legacy data to the new database generated from the UML model. Our approach enhances the integration between formal environments and industrial technologies such as.NET technology, and exploits the best features of both.
Program Simplification as a Means of Approximating Undecidable Propositions
, 1999
"... We describe an approach which mixes testing, slicing, transformation and formal verication to investigate speculative hypotheses concerning a program, formulated during program comprehension activity. Our philosophy is that such hypotheses (which are typically undecidable) can, in some sense, be `a ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
We describe an approach which mixes testing, slicing, transformation and formal verication to investigate speculative hypotheses concerning a program, formulated during program comprehension activity. Our philosophy is that such hypotheses (which are typically undecidable) can, in some sense, be `answered ' by a partly automated system which returns neither `true' nor `false', but a program (the `test program') which computes the answer. The motivation for this philosophy is the way in which, as we demonstrate, static analysis and manipulation technology can be applied to ensure that the resulting test program is signicantly simpler than the original program, thereby simplifying the process of investigating the original hypothesis. 1 Introduction Often the task of legacy system, source code comprehension begins with a series of questions about properties for the system. These questions represent speculative hypotheses about the supposed behaviour of the system. Ideally it would ...