21 citations found. Retrieving documents...
M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, Jan. 1982.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
VADA: A Transformation-based System for Variable.. - Harman, Fox.. (2002)   (1 citation)  (Correct)

.... preserving, at least, not in the traditional sense of meaning that is typically considered to be some form of functional equivalence [3, 4, 13, 34, 39, 41] Although nonmeaning preserving transformations have been considered for program modification in corrective and adaptive maintenance [15, 16], the use of non meaning preserv A return becomes a forward jump after unfolding. 6 ing transformation here appears to be novel. That is, for the purpose of producing the core language from the C language, it is only necessary to preserve sufficient aspects of the behaviour of the program to ....

FEATHER, M. S. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems 4, 1 (Jan. 1982), 1--20.


Deforestation for Higher-Order Functional Programs - Marlow (1995)   (11 citations)  (Correct)

....they achieve, and this fact can be used to specialise and hence automate a transformation strategy. This is the basis of many proposed automatic transformation techniques [Chi90] Feather shows how semi automation of the unfold fold system can ease the transformation of large systems [Fea79, Fea82] Burstall and Darlington recognised that many transformations followed a similar style, so they proposed a strategy for applying the rules. This goes as follows: make any necessary definitions, instantiate, and unfold repeatedly while trying to apply laws, abstraction and folding. Using this ....

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, Jan 1982.


Semantics-Preserving Procedure Extraction - Raghavan Komondoor And (2000)   (2 citations)  (Correct)

....by replacing chain C with the chain C # in P then: P and P # are semantically equivalent. 7 Related Work Related work falls into two main categories: work related to procedure extraction (including [GN93, LD98, LV97, BG98] and work on semantics preserving transformations (including [BD77, LMW79, Ram88, PP96, Fea82, LV97, BG98, BDFH97, CLZ86, FOW87]) GN93] describes a tool that supports a set of meaningpreserving transformations on Scheme programs, including one that extracts a given contiguous sequence of expressions into a new function and replaces the sequence by a call to the function. If the user wishes to extract non contiguous ....

....presumably leave actual extraction to be performed by the programmer. Our work is complementary to theirs in the sense that our procedure extraction algorithm could be applied after one of these tools identifies the statements to extract. Automatic transformations on programs are discussed in [BD77, Fea82, PP96, BDFH97]. Fea82] proposes a system that accepts a set of recursion equations, a starting expression and a goal pattern. The system determines if there is a way to rewrite the starting expression into an expression that satisfies the goal pattern by a series of simple transformation steps, where each ....

[Article contains additional citation context not shown here]

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, January 1982.


Constraints to Stop Higher-Order Deforestation - Seidl, Sørensen (1997)   (10 citations)  (Correct)

....functional languages like ML, Haskell, and Miranda include higher order functions which should be transformed too. Several preliminary approaches reduce the higher order case to the well studied first order case. Wadler [55] considers programs with higher order 1 Earlier techniques include [3, 6, 14, 15, 31, 33, 50, 51, 52, 53]. macros. Any such program typable in the HindleyMilner [27, 36] type system can be expanded out to a first order program, and transformed with first order deforestation. These programs include applications of the fold and map functions, but exclude useful constructions, e.g. lists of functions. ....

M.S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, 1982.


Semantics-Preserving Procedure Extraction - Komondoor, Horwitz (2000)   (2 citations)  (Correct)

....with the chain C 0 in P then: P and P 0 are semantically equivalent. 7 Related Work Related work falls into two main categories: work related to procedure extraction (including [GN93, LD98, LV97, BG98] and work on semantics preserving transformations (including [BD77, LMW79, Ram88, PP96, Fea82, LV97, BG98, BDFH97, CLZ86, FOW87] GN93] describes a tool that supports a set of meaningpreserving transformations on Scheme programs, including one that extracts a given contiguous sequence of expressions into a new function and replaces the sequence by a call to the function. If the user ....

....leave actual extraction to be performed by the programmer. Our work is complementary to theirs in the sense that our procedure extraction algorithm could be applied after one of these tools identi es the statements to extract. Automatic transformations on programs are discussed in [BD77, Fea82, PP96, BDFH97] Fea82] proposes a system that accepts a set of recursion equations, a starting expression and a goal pattern. The system determines if there is a way to rewrite the starting expression into an expression that satis es the goal pattern by a series of simple transformation steps, ....

[Article contains additional citation context not shown here]

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1{ 20, January 1982.


Template-Assisted Program Restructuring with Application to.. - Marshall (2000)   (Correct)

....to facilitate program slicing, program difference detection and program version integration. Finally, the System Dependence Graph (SDG) 38] is an extension of the PDG representation that accounts for interprocedural control flow. 2. 7 Classical Program Transformation As used in the literature [9, 23, 62, 63], the term program transformation originally referred to the evolution from a specification to a program through a series of stepwise transformations, each of which has been proven correct, in that each maintains the meaning of the specification. We refer to this process as classical program ....

Martin S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, January 1982. (cited on page 20) 175


Program Restructuring as an Aid to Software Maintenance - Griswold (1991)   (26 citations)  (Correct)

....problem in the restructuring domain because the catalogue is practically bounded by the size of the language s syntax. Recent work in derivational programming has attempted to alleviate the tedium of choosing and applying transformations by building up higher level transformations from primitives [Feather 84] Barstow 85] For example, M.S. Feather developed a technique that uses a pattern to express the goal of a transformation [Feather 84] Using a goal pattern, a tool can select the appropriate primitive transformations to compose to achieve the goal. Such techniques might be applicable to ....

....derivational programming has attempted to alleviate the tedium of choosing and applying transformations by building up higher level transformations from primitives [Feather 84] Barstow 85] For example, M.S. Feather developed a technique that uses a pattern to express the goal of a transformation [Feather 84] Using a goal pattern, a tool can select the appropriate primitive transformations to compose to achieve the goal. Such techniques might be applicable to restructuring. Other work has focused on trying to lower the costs of redevelopment by automating rederivation of a program from a modified ....

[Article contains additional citation context not shown here]

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, January 1984.


Incremental Computation: A Semantics-Based Systematic.. - Liu (1996)   (2 citations)  (Correct)

....of f 0 , as opposed to carrying out two disjoint computations. The integrated computation is usually more efficient; so is its incremental version. We do not describe the integration in detail. Basically, it uses traditional transformation techniques [BD77] like those used in tupling tactic [Fea82] and partial evaluation [JGS93] introducing functions to compute function applications, unfolding, 83 simplifying primitive function applications, driving, replacing recursive applications with introduced functions, etc. We require only that Pi 0 ( f 0 (x) always project out 1st( f 0 ....

....Another distinguishing aspect is that the resulting program here returns all intermediate results on the arguments of interest as well. Step B. 1 merges candidate auxiliary information with intermediate results, which may make use of a collection of existing transformation techniques like tupling [Fea82, Pet84,Chi93] Step B.2 uses the incrementalization method in Chapter 3, just as 86 Stage II of the method in Chapter 4. Finally, Step B.3 prunes the resulting programs using the backward dependency analysis just as in Stage III of the method in Chapter 4. This saves time and space by ....

[Article contains additional citation context not shown here]

Martin S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1-- 20, January 1982.


Automatic, Self-adaptive Control of Unfold-Fold Transformations - James Boyle   (Correct)

....of a named function by an application of the definition of that function. Obviously, if the named function is recursive, such replacement could go on forever. After to the appearance of the Burstall and Darlington paper, some work was done on control of unfold fold transformations. Feather [8] implemented a strategy in which unfolding took place until a user specified pattern was found. The user of Feather s system prevented infinite unfolding by providing an explicit limit on the number of times unfolding took place. Feather s approach has not been widely used, however, in part ....

Martin S. Feather, A system for assisting program transformation, ACM Transactions on Programming Languages and Systems, Vol. 4, No. 1, 1982, pp. 1--20.


Applying Formal Methods in Automated Software Development - Cheng (1994)   (1 citation)  (Correct)

....of rule applications are restored to their original conditions to facilitate another path of rule applications. 6 Other Approaches to Program Development This section discusses and contrasts other approaches to program development to the one addressed in this paper. A transformational approach [30, 31, 32, 33] to program synthesis typically comprises a system of rules to transform programs expressed in recursion equations of the form E ( F , into more efficient programs, where E is a function expression of the form f(e 1 ; e n ) f is a function name, and e i are expressions. The ....

....corresponding LHS instance E to obtain (F ( F 00 ) this process abstracts a function from a specification. The correctness of a final program is guaranteed since it is assumed that all transformations are equivalence preserving. In contrast to transformational approaches to program synthesis [30, 31, 32, 33], Seed uses a bottom up derivation of programs guided by the derivation of a valid wp that yields a program satisfying an abstract description of a problem. The transformational approach to program derivation depends on the user s intuition in determining appropriate places to introduce new ....

Martin S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, January 1982.


Efficient Call-by-value Evaluation Strategy of Primitive.. - Mößle, Vogler   (Correct)

....computations of function calls and multiple traversals of subcomponents of function arguments. Also in the field of program transformation as a discipline to compose programs from an abstract specification by stepwise refinement, the question of producing efficient programs attracted attention [Fea82, BW82, PP86, Par90]. In particular, recursion elimination is addressed. According to [Boi92] the strategies of the cited papers can be divided into the following categories: accumulation, finite differencing (cf. e.g. PK82] algorithm theories, and inverting the order of evaluation. In [Kla88] an alternative ....

M.S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, 1982.


Deductive and Inductive Synthesis of Equational Programs - Dershowitz, Reddy (1992)   (15 citations)  (Correct)

....method and forms an important component in reasoning about functional programs. cf. BW88] It has also been adapted to reasoning about logic programs, see, for example, Dev90, Hog76, TS84] Significant effort has been devoted to building automated systems based on the methodology [Dar81, Fea79, Fea82]. Partial evaluation systems, which have been increasingly successful in recent times [ACM91, BEJ88] are also based on the unfold fold method. In building reliable general purpose program synthesis systems, however, several issues arise: ffl How to determine if the transformed programs are ....

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, 1982.


Constraints to Stop Deforestation - Seidl, Sørensen (1998)   (8 citations)  (Correct)

....benefits of both elegance and efficiency by writing the first version and have it translated to the second automatically, e.g. by our compiler. Some early techniques for this are due to Burstall and Darlington [6] Manna and Waldinger [35] Darlington [14] Kierburtz and Schultis [32] Feather [15], Turchin [62] Bird [3] Wadler [63 65] and Scherlis [48] This paper is about Wadler s deforestation [17,66,68] an algorithm eliminating intermediate data structures from first order functional programs in which (i) no definition contains an argument which is not a variable; ii) no ....

M.S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, 1982.


Formalization of the Development Process - Basin, Krieg-Brückner (1998)   (Correct)

....strategy may involve iteration, case analysis, and indeed, arbitrary computation. Returning to our unfold fold example, Feather, for instance, has looked at strategies defining common patterns of reasoning in unfold fold and defined a class of programs, called design tactics, that implement them [Fea82] In his work each tactic implements a new kind of transformation step that performs a specific and useful task; e.g. the combine tactic replaces nested function calls with a call to a new function definition that could subsequently be optimized. This idea of using tactics to raise the level of ....

Martin S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4:1--20, 1982.


KIDS: A Semi-Automatic Program Development System - Smith (1990)   (190 citations)  (Correct)

....ability to replay design decisions after a specification change [17] 6 Related Work In addition to KIDS, a number of experimental interactive transformational systems have been developed, a few of which are mentioned below. For a survey of early systems see [31] Feather s ZAP system [14] built on the basic fold unfold method [10] by introducing tactics metaprograms to control the application of basic transformations. More recently Darlington has been developing a system which provides a uniform functional and transformational programming environment [13] This project is also ....

Feather, M. A system for transformationally deriving programs. ACM Transactions on Programming Languages and Systems 4, 1 (January 1982), 1--21.


Constraints to Stop Higher-Order Deforestation - Seidl, Sørensen (1997)   (10 citations)  (Correct)

....collect a set of integer constraints. These termination techniques concern only first order programs. However, modern functional languages like ML, Haskell, and Miranda include higher order functions which should be transformed too. Several preliminary approaches 1 Earlier techniques include [3, 5, 13, 14, 30, 32, 49, 50, 51, 52]. reduce the higher order case to the first order case. Wadler [54] considers programs with higher order macros. Any such program typable in the Hindley Milner [27, 35] type system can be expanded out to a first order program, and transformed with first order deforestation. These programs ....

M.S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, 1982.


Experience with a Clustered Parallel Reduction Machine - Beemster, Hartel.. (1993)   (1 citation)  (Correct)

....with further help by the programmer to make decisions about the grain size of parallel jobs. A number of additional transformations have been developed specifically to support coarse grain parallelism. These are applied together with some standard transformations described in the literature (e.g. [8, 11, 15]) The following sections show the major aspects of program development by discussing some examples of parallel functional programs. The first three examples are divide and conquer algorithms, that differ in the way the grain size is made suitable for the architecture. The fourth example is a ....

M. S. Feather. A system for assisting program transformation. ACM transactions on programming languages and systems, 4(1):1--20, Jan 1982.


Discovering Auxiliary Information for Incremental Computation - Liu, Stoller, Teitelbaum (1996)   (12 citations)  (Correct)

....of f0 , as opposed to carrying out two disjoint computations. The integrated computation is usually more efficient; so is its incremental version. We do not describe the integration in detail. Basically, it uses traditional transformation techniques [13] like those used in tupling tactic [21, 50, 14]. We require only that Pi 0( f0(x) always project out 1st( f0(x) which is the value of f0(x) and that the values of all other components of f0(x) and f0(x; r) are embedded in the value of f0(x) This allows re arranging the order of the components in the return value. For the ....

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, January 1982.


Evolving Transformation Sequences using Genetic Algorithms - Deji Fatiregun Mark   Self-citation (Transformation)   (Correct)

No context found.

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, Jan. 1982.


Evolutionary Testing in the Presence of Loop-Assigned Flags.. - Baresel, Harman (2004)   (2 citations)  Self-citation (Transformation)   (Correct)

No context found.

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, Jan. 1982.


Evolutionary Testing in the Presence of Loop-Assigned Flags.. - Baresel, Harman (2004)   (2 citations)  Self-citation (Transformation)   (Correct)

No context found.

M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 4(1):1--20, Jan. 1982.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC