Specification of rewriting strategies

User-definable strategies for the application of rewrite rules provide a means to construct transformation systems that apply rewrite rules in a controlled way. This paper describes a strategy language and its interpretation. The language is used to control the rewriting of terms using labeled rewrite rules. Rule labels are atomic strategies. Compound strategies are formed by means of sequential composition, nondeterministic choice, left choice, fixed point recursion, and two primitives for expressing term traversal. Several complex strategies such as bottom-up and top-down application and (parallel) innermost and (parallel) outermost reduction can be defined in terms of these primitives. The paper contains two case studies of the application of strategies.

[1]  Jan A. Bergstra,et al.  Algebra of Communicating Processes with Abstraction , 1985, Theor. Comput. Sci..

[2]  Alban Ponse Process Algebras with Data , 1992 .

[3]  Jan Friso Groote,et al.  Proof Theory for µCRL: A Language for Processes with Data , 1993, Semantics of Specification Languages.

[4]  Claire Gardent,et al.  Talking About Trees , 1993, EACL.

[5]  Chris Verhoef,et al.  A General Conservative Extension Theorem in Process Algebra , 1994, PROCOMET.

[6]  Jan A. Bergstra,et al.  Network algebra for synchronous and asynchronous dataflow , 1994 .

[7]  Eelco Visser,et al.  From Box to T E X: An algebraic approach to the construction of documentation tools , 1994 .

[8]  Marian Vittek Elan : un cadre logique pour le prototypage de langages de programmation avec contraintes , 1994 .

[9]  T. B. Dinesh,et al.  Asf+Sdf'95: a workshop on Generating Tools from Algebraic Specifications , 1995 .

[10]  Jan A. Bergstra,et al.  Network algebra with demonic relation operators , 1995 .

[11]  Jan A. Bergstra,et al.  Frame-based process logics , 1995 .

[12]  Jan A. Bergstra,et al.  Grid protocols based on synchronous communication: specification and correctness , 1995 .

[13]  Jan A. Bergstra,et al.  Algebra of Communicating Processes , 1995, Workshops in Computing.

[14]  J. Brunekreef,et al.  TransLog, an interactive tool for transformation of logic programs , 1995 .

[15]  Jan A. Bergstra,et al.  Discrete time process algebra (revised version of P9208b) , 1995 .

[16]  Jan Friso Groote,et al.  The Syntax and Semantics of μCRL , 1995 .

[17]  Alban Ponse,et al.  Translating a process algebra with symbolic data values to linear format , 1995 .

[18]  J. M. T. Romijn Automatic analysis of term rewriting systems: proving properties of term rewriting systems derived from ASF+SDF specifications , 1995 .

[19]  Jan A. Bergstra,et al.  Sequential data algebra primitives (revised version of P9602) , 1996 .

[20]  T. B. Dinesh,et al.  Specifying Input and Output of Visual Languages , 1996 .

[21]  Eelco Visser Solving type equations in multi-level specifications (preliminary version) , 1996 .

[22]  Paul Klint,et al.  Core Technologies for System Renovation , 1996, SOFSEM.

[23]  Claude Kirchner,et al.  Controlling rewriting by rewriting , 1996, WRLA.

[24]  P. A. Olivier,et al.  Embedded system simulation: testdriving the ToolBus , 1996 .

[25]  M.P.A. Sellink Transforming an ASF+SDF Specification into a ToolBus Application , 1996 .

[26]  J. J. Brunekreef A transformation tool for pure Prolog programs: the algebraic specification , 1996 .

[27]  P. I. Manuel,et al.  ANSI Cobol III in SDF + an ASF Definition of a Y2K Tool , 1996 .

[28]  L.M.F. Moonen,et al.  Data Flow Analysis for Reverse Engineering , 1996 .

[29]  Jan A. Bergstra,et al.  Sequential data algebra primitives , 1996 .

[30]  Eelco Visser,et al.  Generation of formatters for context-free languages , 1996, TSEM.

[31]  Arie van Deursen,et al.  Language Prototyping: An Algebraic Specification Approach , 1996, AMAST Series in Computing.

[32]  Eelco Visser,et al.  A Case Study in Optimizing Parsing Schemata by Disambiguation Filters , 1997, IWPT.

[33]  Jan A. Bergstra,et al.  An Arithmetical Module for Rationals and Reals , 1997 .

[34]  P. Klint,et al.  Reverse engineering and system renovation—an annotated bibliography , 1997, SOEN.

[35]  M. de Jonge Reuse of ASF+SDF Specifications by means of Renaming , 1997 .

[36]  Paul Klint,et al.  Re-engineering needs generic programming language technology , 1997, SIGP.

[37]  Pieter A. Olivier Debugging Distributed Applications Using a Coordination Architecture , 1997, COORDINATION.

[38]  Alex Sellink,et al.  A Formal Axiomatization for Alphabet Reasoning with Parametrized Processes , 1995, Formal Aspects of Computing.

[39]  Alex Sellink On the Conservativity of Leibniz Equality , 1998, Int. J. Found. Comput. Sci..