Results 1 -
3 of
3
A Core Language for Rewriting
- Electronic Notes in Theoretical Computer Science
, 1998
"... System S is a calculus providing the basic abstractions of term rewriting: matching and building terms, term traversal, combining computations and handling failure. The calculus forms a core language for implementation of a wide variety of rewriting languages, or more generally, languages for specif ..."
Abstract
-
Cited by 22 (8 self)
- Add to MetaCart
System S is a calculus providing the basic abstractions of term rewriting: matching and building terms, term traversal, combining computations and handling failure. The calculus forms a core language for implementation of a wide variety of rewriting languages, or more generally, languages for specifying tree transformations. In this paper we showhow a conventional rewriting language based on conditional term rewriting can be implemented straightforwardly in System S. Subsequently we show how this implementation can be extended with features such as matching conditions, negative conditions, default rules, non-strictness annotations and alternativeevaluation strategies. 1 Introduction Term rewriting is a theoretically well-de#ned paradigm that consists of reducing a term to normal form with respect to a set of rewrite rules #12,5,1#. However, in practical instantiations of this paradigm a wide variety of features are added to this basic paradigm. This has resulted in the design and impl...
A Survey of Rewriting Strategies in Program Transformation Systems
- In Workshop on Reduction Strategies in Rewriting and Programming (WRS’01), volume 57 of Electronic Notes in Theoretical Computer Science
, 2001
"... Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex program transformations are achieved through a number of consecutive modifications of a program. Transfo ..."
Abstract
-
Cited by 20 (1 self)
- Add to MetaCart
Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex program transformations are achieved through a number of consecutive modifications of a program. Transformation rules define basic modifications. A transformation strategy is an algorithm for choosing a path in the rewrite relation induced by a set of rules. This paper surveys the support for the definition of strategies in program transformation systems. After a discussion of kinds of program transformation and choices in program representation, the basic elements of a strategy system are discussed and the choices in the design of a strategy language are considered. Several styles of strategy systems as provided in existing languages are then analyzed.
The Essence of Strategic Programming An inquiry into trans-paradigmatic genericity
, 2002
"... Strategic programming is an idiom for generic programming where the concept of a strategy plays a central role. A strategy is a generic, dataprocessing action. Strategies are rst-class citizens as witnessed by a combinator style. Two important characteristics of strategies are that they can traverse ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Strategic programming is an idiom for generic programming where the concept of a strategy plays a central role. A strategy is a generic, dataprocessing action. Strategies are rst-class citizens as witnessed by a combinator style. Two important characteristics of strategies are that they can traverse into compound data, and that they can be customized by type-specic actions. We provide a general denition of strategic programming, and we demonstrate how this idiom can be realized inside several programming language paradigms.

