Context-Sensitive Rewriting Strategies

Context-sensitive rewriting is a simple rewriting restriction which is formalized by imposing fixed restrictions on replacements. Such a restriction is given on a purely syntactic basis: it is given on the arguments of symbols of the signature and inductively extended to arbitrary positions of terms built from those symbols. The termination behavior is not only preserved but usually improved and several methods have been developed to formally prove it. In this paper, we investigate the definition, properties, and use of context-sensitive rewriting strategies, i.e., particular, fixed sequences of contextsensitive rewriting steps. We study how to define them in order to obtain efficient computations and to ensure that context-sensitive computations terminate whenever possible. We give conditions enabling the use of these strategies for root-normalization, normalization, and infinitary normalization. We show that this theory is suitable for formalizing the definition and analysis of real computational strategies which are used in programming languages such as OBJ or ELAN. C © 2002 Elsevier Science (USA)

[1]  Marko C. J. D. van Eekelen,et al.  Functional Programming and Parallel Graph Rewriting , 1993 .

[2]  Wolfgang Thomas,et al.  Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics , 1990 .

[3]  Aart Middeldorp Call by need computations to root-stable form , 1997, POPL '97.

[4]  HuetGérard Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980 .

[5]  Marinus J. Plasmeijer,et al.  Concurrent Clean, Language Manual - Version 0.8 (revised version) , 1993 .

[6]  Kazuhiro Ogata,et al.  The evaluation strategy for head normal form with and without on-demand flags , 2000, WRLA.

[7]  Hubert Comon-Lundh Sequentiality, Monadic Second-Order Logic and Tree Automata , 2000, Inf. Comput..

[8]  Jean-Marie Hullot,et al.  Canonical Forms and Unification , 1980, CADE.

[9]  Aart Middeldorp,et al.  A Sequential Reduction Strategy , 1996, Theor. Comput. Sci..

[10]  Luc Maranget,et al.  Optimal derivations in weak lambda-calculi and in orthogonal term rewriting systems , 1991, POPL '91.

[11]  Maurice Nivat,et al.  The metric space of infinite trees. Algebraic and topological properties , 1980, Fundam. Informaticae.

[12]  Richard Kennaway,et al.  A Conflict Between Call-by-Need Computation and Parallelism , 1994, CTRS.

[13]  Viggo Stoltenberg-hansen,et al.  In: Handbook of Logic in Computer Science , 1995 .

[14]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[15]  Fabio Gadducci,et al.  Rational Term Rewriting , 1998, FoSSaCS.

[16]  Jan Willem Klop,et al.  Term Graph Rewriting , 1995, HOA.

[17]  Salvador Lucas,et al.  Termination of Context-Sensitive Rewriting by Rewriting , 1996, ICALP.

[18]  Samson Abramsky,et al.  Handbook of logic in computer science. , 1992 .

[19]  John McCarthy,et al.  History of LISP , 1978, SIGP.

[20]  Jürgen Giesl,et al.  Transforming Context-Sensitive Rewrite Systems , 1999, RTA.

[21]  Chris Reade,et al.  Elements of functional programming , 1989, International computer science series.

[22]  Aart Middeldorp,et al.  Sequentiality in Orthogonal Term Rewriting Systems , 1991, J. Symb. Comput..

[23]  Nachum Dershowitz,et al.  Rewrite, rewrite, rewrite, rewrite, rewrite... , 1989, POPL '89.

[24]  Maria C. F. Ferreira,et al.  Context-Sensitive AC-Rewriting , 1999, RTA.

[25]  Irène Durand Bounded, Strongly Sequential and Forward-Branching Term Rewriting Systems , 1994, J. Symb. Comput..

[26]  Claude Kirchner,et al.  A Functional View of Rewriting and Strategies for a Semantics of ELAN , 1998, Fuji International Symposium on Functional and Logic Programming.

[27]  Daniel P. Friedman,et al.  CONS Should Not Evaluate its Arguments , 1976, ICALP.

[28]  Sergio Antoy Definitional Trees , 1992, ALP.

[29]  Jürgen Giesl,et al.  Termination of term rewriting using dependency pairs , 2000, Theor. Comput. Sci..

[30]  Quang Huy Nguyen Compact Normalisation Trace via Lazy Rewriting , 2001, Electron. Notes Theor. Comput. Sci..

[31]  Jan Willem Klop,et al.  Transfinite Reductions in Orthogonal Term Rewriting Systems , 1995, Inf. Comput..

[32]  Salvador Lucas Root-Neededness and Approximations of Neededness , 1998, Inf. Process. Lett..

[33]  Claude Kirchner,et al.  An overview of ELAN , 1998, WRLA.

[34]  H. R. Walters,et al.  Lazy Rewriting and Eager Machinery , 1995, RTA.

[35]  Salvador Lucas,et al.  Modular termination of context-sensitive rewriting , 2002, PPDP '02.

[36]  Richard Kennaway Sequential Evaluation Strategies for Parallel-Or and Related Reduction Systems , 1989, Ann. Pure Appl. Log..

[37]  Joseph A. Goguen,et al.  Software Engineering with Obj: Algebraic Specification In Action , 2010 .

[38]  Jean-Pierre Jouannaud,et al.  Strong Sequentiality of Left-Linear Overlapping Rewrite Systems , 1994, CTRS.

[39]  Alan Mycroft,et al.  The Theory and Practice of Transforming Call-by-need into Call-by-value , 1980, Symposium on Programming.

[40]  Laurent Fribourg,et al.  SLOG: A Logic Programming Language Interpreter Based on Clausal Superposition and Rewriting , 1985, SLP.

[41]  Michael J. O'Donnell,et al.  Computing in systems described by equations , 1977, Lecture Notes in Computer Science.

[42]  Kazuhiro Ogata,et al.  Implementation of Term Rewritings with the Evaluation Strategy , 1997, PLILP.

[43]  Hans Zantema,et al.  Termination of Context-Sensitive Rewriting , 1997, RTA.

[44]  Geoffrey L. Burn,et al.  Evaluation transformers - a model for the parallel evaluation of functional languages (extended abstract) , 1987, FPCA.

[45]  John W. Lloyd Functional Logic Languages: Combine Search and Efficient Evaluation , 1995 .

[46]  Salvador Lucas,et al.  Context-sensitive Computations in Functional and Functional Logic Programs , 1998, J. Funct. Log. Program..

[47]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[48]  Steven Eker Term rewriting with operator evaluation strategies , 1998, WRLA.

[49]  Salvador Lucas Termination of Rewriting With Strategy Annotations , 2001, LPAR.

[50]  Salvador Lucas Transfinite Rewriting Semantics for Term Rewriting Systems , 2001, RTA.

[51]  Michio Oyamaguchi NV-Sequentiality: A Decidable Condition for Call-by-Need Computations in Term-Rewriting Systems , 1993, SIAM J. Comput..

[52]  Salvador Lucas,et al.  Recursive Path Orderings Can Be Context-Sensitive , 2002, CADE.

[53]  Florent Jacquemard,et al.  Decidable Approximations of Term Rewriting Systems , 1996, RTA.

[54]  James R. Slagle,et al.  Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity , 1974, JACM.

[55]  Hiroyuki Seki,et al.  Right-Linear Finite Path Overlapping Term Rewriting Systems Effectively Preserve Recognizability , 2000, RTA.

[56]  Uday S. Reddy,et al.  Narrowing as the Operational Semantics of Functional Languages , 1985, SLP.

[57]  Jürgen Giesl,et al.  Transformation techniques for context-sensitive rewrite systems , 2004, J. Funct. Program..

[58]  Jaco van de Pol,et al.  Just-in-time: On Strategy Annotations , 2001, WRS.

[59]  長谷 崇 Reduction strategies for term rewriting systems , 1999 .

[60]  Rachid Echahed,et al.  A needed narrowing strategy , 2000, JACM.

[61]  Geoffrey L. Burn,et al.  Lazy functional languages - abstract interpretation and compilation , 1991, Research monographs in parallel and distributed computing.

[62]  Marko C. J. D. van Eekelen,et al.  Concurrent Clean , 1991, PARLE.

[63]  M. Clavel,et al.  Principles of Maude , 1996, WRLA.

[64]  Salvador Lucas,et al.  Strongly Sequential and Inductively Sequential Term Rewriting Systems , 1998, Inf. Process. Lett..

[65]  K. Hofmann,et al.  A Compendium of Continuous Lattices , 1980 .

[66]  Jean-Claude Raoult,et al.  Operational and Semantic Equivalence Between Recursive Programs , 1980, JACM.

[67]  Salvador Lucas,et al.  Termination of on-demand rewriting and termination of OBJ programs , 2001, PPDP '01.

[68]  Peter Henderson,et al.  A lazy evaluator , 1976, POPL.

[69]  Wan Fokkink,et al.  Lazy rewriting on eager machinery , 2000, TOPL.

[70]  Takashi Nagaya,et al.  Decidability for Left-Linear Growing Term Rewriting Systems , 1998, Inf. Comput..

[71]  Ataru T. Nakagawa,et al.  An overview of CAFE specification environment-an algebraic approach for creating, verifying, and maintaining formal specifications over networks , 1997, First IEEE International Conference on Formal Engineering Methods.

[72]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[73]  Yoshihito Toyama,et al.  NVNF-sequentiality of Left-linear Term Rewriting Systems , 1995 .

[74]  Salvador Lucas Lazy Rewriting and Context-Sensitive Rewriting , 2002, Electron. Notes Theor. Comput. Sci..

[75]  Michael J. O'Donnell,et al.  Equational Logic as a Programming Language , 1985, Logic of Programs.

[76]  Rinus Plasmeijer,et al.  The functional strategy and transitive term rewriting systems , 1993 .

[77]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[78]  S. Antoy Deenitional Trees , 1992 .

[79]  Robert Strandh Classes of Equational Programs that Compile into Efficient Machine Code , 1989, RTA.

[80]  Aart Middeldorp,et al.  Decidable Call by Need Computations in term Rewriting (Extended Abstract) , 1997, CADE.

[81]  Salvador Lucas Termination of (Canonical) Context-Sensitive Rewriting , 2002, RTA.

[82]  Enno Ohlebusch,et al.  Term Rewriting Systems , 2002 .

[83]  D. Plaisted Equational reasoning and term rewriting systems , 1993 .

[84]  N. A C H U M D E R S H O W I T Z Termination of Rewriting' , 2022 .

[85]  Michael Hanus,et al.  The Integration of Functions into Logic Programming: From Theory to Practice , 1994, J. Log. Program..

[86]  良彦 二村 20世紀の名著名論:John McCarthy : Recursive Functions of Symbolic Expressions and Their Computations by Machine , 2003 .