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 42 (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.
Derivation of Data Intensive Algorithms by Formal Transformation: The SchorrWaite Graph Marking Algorithm
, 1996
"... In this paper we consider a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a comb ..."
Abstract

Cited by 36 (25 self)
 Add to MetaCart
In this paper we consider a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a combination of a basic idea with an implementation technique. Our approach is based on applying proven semanticspreserving transformation rules in a wide spectrum language. Starting with a set theoretical specification of "reachability" we are able to derive iterative and recursive graph marking algorithms using the "pointer switching" idea of Schorr and Waite. There have been several proofs of correctness of the SchorrWaite algorithm, and a small number of transformational developments of the algorithm. The great advantage of our approach is that we can derive the algorithm from its specification using only generalpurpose transformational rules: without the need for complicated induction arg...
A Multipurpose Backtracking Algorithm
, 1994
"... A backtracking algorithm with element order selection is presented, and its efficiency discussed in relation both to standard examples and to examples concerning relationpreserving maps which the algorithm was derived to solve. 1 Introduction Backtracking has long been used as a strategy for solvin ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
A backtracking algorithm with element order selection is presented, and its efficiency discussed in relation both to standard examples and to examples concerning relationpreserving maps which the algorithm was derived to solve. 1 Introduction Backtracking has long been used as a strategy for solving combinatorial problems and has been extensively studied (Gerhart & Yelowitz (1976), Roever (1978), Walker (1960), Wells (1971)). In worst case situations it may be highly inefficient, and a systematic analysis of efficiency is very difficult. Thus backtracking has sometimes been regarded as a method of last resort. Nevertheless, backtracking algorithms are widely used, especially on NPcomplete problems. In order to make these algorithms computationally feasible on a range of large problems, they are usually tailored to particular applications (see, for example, Butler and Lam's approach to isomorphismtesting in Butler & Lam (1985) and Knuth and Szwarcfiter's approach to topological sort...
Program Slicing via FermaT Transformations
, 2002
"... In this paper we give a brief introduction to the foundations of WSL transformation theory and describe how the concept of program slicing can be formalised in the theory. This formalism naturally lends itself to several generalisations including amorphous slicing and conditioned slicing. One novel ..."
Abstract

Cited by 22 (3 self)
 Add to MetaCart
In this paper we give a brief introduction to the foundations of WSL transformation theory and describe how the concept of program slicing can be formalised in the theory. This formalism naturally lends itself to several generalisations including amorphous slicing and conditioned slicing. One novel generalisation is "semantic slicing" which combines slicing and abstraction to a specification. Interprocedural semantic slicing has been implemented in the FermaT transformation system [16]: an industrialstrength transformation system designed for forward and reverse engineering, reengineering and program comprehension.
Formal Methods to Aid the Evolution of Software
 International Journal of Software Engineering and Knowledge Engineering
, 1995
"... There is a vast collection of operational software systems which are vitally important to their users, yet are becoming increasingly difficult to maintain, enhance and keep up to date with rapidly changing requirements. For many of these so called legacy systems the option of throwing the system awa ..."
Abstract

Cited by 19 (5 self)
 Add to MetaCart
(Show Context)
There is a vast collection of operational software systems which are vitally important to their users, yet are becoming increasingly difficult to maintain, enhance and keep up to date with rapidly changing requirements. For many of these so called legacy systems the option of throwing the system away an rewriting it from scratch is not economically viable. Methods are therefore urgently required which enable these systems to evolve in a controlled manner. The approach described in this paper uses formal proven program transformations, which preserve or refine the semantics of a program while changing its form. These transformations are applied to restructure ans simplify the legacy systems and to extract higherlevel representations. By using an appropriate sequence of transformations, the extracted representation is guaranteed to be equivalent to the code. The method is based on a formal wide spectrum language, called WSL, with accompanying formal method. Over the last ten years we h...
Slicing as a Program Transformation
 ACM Transactions On Programming Languages and Systems
, 2007
"... The aim of this paper is to provide a unified mathematical framework for program slicing which places all slicing work, for sequential programs, on a sound theoretical foundation. The main advantage to a mathematical approach is that it is not tied to a particular representation. In fact the mathema ..."
Abstract

Cited by 17 (3 self)
 Add to MetaCart
(Show Context)
The aim of this paper is to provide a unified mathematical framework for program slicing which places all slicing work, for sequential programs, on a sound theoretical foundation. The main advantage to a mathematical approach is that it is not tied to a particular representation. In fact the mathematics provides a sound basis for any particular representation. We use the WSL (Wide Spectrum Language) program transformation theory as our framework. Within this framework we define a new semantic relation, semirefinement which lies between semantic equivalence and semantic refinement. Combining this semantic relation, a syntactic relation (called reduction) and WSL’s remove statement, we can give mathematical definitions for backwards slicing, conditioned slicing, static and dynamic slicing and semantic slicing as program transformations in the WSL transformation theory. A novel technique of “encoding ” operational semantics within a denotational semantics allows the framework to handle “operational slicing”. The theory also enables the concept of slicing to be applied to nondeterministic programs. These transformations are implemented in the industrystrength FermaT transformation system.
The Speech Sciences
, 1997
"... In this paper we brie
y introduce a Wide Spectrum Language and its transformation theory and describe a recent success of the theory: a general recursion removal theorem. Recursion removal often forms an important step in the systematic development of an algorithm from a formal specication. We use s ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
(Show Context)
In this paper we brie
y introduce a Wide Spectrum Language and its transformation theory and describe a recent success of the theory: a general recursion removal theorem. Recursion removal often forms an important step in the systematic development of an algorithm from a formal specication. We use semanticpreserving transformations to carry out such developments and the theorem proves the correctness of many dierent classes of recursion removal. This theorem includes as special cases the two techniques discussed by Knuth [13] and Bird [7]. We describe some applications of the theorem to cascade recursion, binary cascade recursion, Gray codes, and an inverse engineering problem. 1
A Definition of Abstraction
, 1996
"... ion Martin Ward Computer Science Dept Science Labs South Rd Durham DH1 3LE April 9, 1996 Abstract What does it mean to say that one program is "more abstract" then another? What is "abstract" about an abstract data type? What is the difference between a "highlevel" p ..."
Abstract

Cited by 14 (9 self)
 Add to MetaCart
ion Martin Ward Computer Science Dept Science Labs South Rd Durham DH1 3LE April 9, 1996 Abstract What does it mean to say that one program is "more abstract" then another? What is "abstract" about an abstract data type? What is the difference between a "highlevel" program and a "lowlevel" program? In this paper we attempt to answer these questions by formally defining an abstraction relation between programs which matches our intuitive ideas about abstraction. The relation is based on examining the operational semantics of the programs, expressed as a set of traces (sequences of states) from a given initial state to a possible final state. KEY WORDS: Abstraction, Software Maintenance, Transformations, Refinement, Transformational Programming 1 Introduction In discussing software development, refinement of specifications into programs, reverse engineering from programs into specifications, and other related areas, concepts such as "highlevel program" verses "lowlevel program", ...
Language Oriented Programming
 In: Software  Concepts and Tools, Springer Berlin / Heidelberg, Vol.15, No.4
, 1994
"... This paper describes the concept of language oriented programming which is a novel way of organising the development of a large software system, leading to a different structure for the finished product. The approach starts by developing a formally specified, domainoriented, very highlevel languag ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
(Show Context)
This paper describes the concept of language oriented programming which is a novel way of organising the development of a large software system, leading to a different structure for the finished product. The approach starts by developing a formally specified, domainoriented, very highlevel language which is designed to be wellsuited to developing “this kind of program”. The development process then splits into two independent stages: (1) Implement the system using this “middle level ” language, and (2) Implement a compiler or translator or interpreter for the language, using existing technology. The approach is claimed to have advantages for domain analysis, rapid prototyping, maintenance, portability, userenhanceable systems, reuse of development work, while also providing high development productivity. We give an example where the method has been used very successfully (in conjunction with rapid prototyping) in the development of a large software system: the FermaT reverse engineering tool. A major benefit of this approach to software development, as compared to the usual sequential “waterfall model ” is the speed with which products can be brought to market. This is due to “concurrent engineering”: the effective overlap of development stages. Finally, the “middle out ” development