The transient combinator, higher-order strategies, and the distributed data problem

The distributed data problem is characterized by the desire to bring together semantically related data from syntactically unrelated portions of a term. A strategic combinator called transient and a strategic constant called skip are introduced in the context of a higher-order strategic framework. The notion of traversal is lifted to the higher order as well. The resulting framework allows the manipulation of data to be expressed directly in strategic terms. The impact of this dynamic approach to strategy creation is then explored for several instances of the distributed data problem. Problems considered include three strategic benchmarks as well as two transformations that arise within a class loader for the Java virtual machine.

[1]  José Meseguer,et al.  Reflection in Membership Equational Logic, Many-Sorted Equational Logic, Horn Logic with Equality, and Rewriting Logic , 2004, WRLA.

[2]  Eelco Visser Scoped Dynamic Rewrite Rules , 2001, Electron. Notes Theor. Comput. Sci..

[3]  Eelco Visser,et al.  Strategies for Source-to-Source Constant Progagation , 2002, Electron. Notes Theor. Comput. Sci..

[4]  Johan Jeuring,et al.  PolyP—a polytypic programming language extension , 1997, POPL '97.

[5]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

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

[7]  C. Kirchner,et al.  Introduction to the Rewriting Calculus , 1999 .

[8]  Ralf Lämmel,et al.  The Sketch of a Polymorphic Symphony , 2002, WRS.

[9]  Paul Klint,et al.  Term rewriting with traversal functions , 2003, TSEM.

[10]  Ralf Lämmel,et al.  A Strafunski Application Letter , 2003, PADL.

[11]  Ralf Lämmel,et al.  Dealing with large bananas , 2000 .

[12]  Paul Klint,et al.  A meta-environment for generating programming environments , 1989, TSEM.

[13]  Eelco Visser,et al.  Meta-programming with Concrete Object Syntax , 2002, GPCE.

[14]  Ralf Lämmel,et al.  Typed generic traversal with term rewriting strategies , 2002, J. Log. Algebraic Methods Program..

[15]  S. Eker,et al.  Metalevel computation in Maude , 1998, WRLA.

[16]  Ralf Lämmel,et al.  Typed Combinators for Generic Traversal , 2002, PADL.

[17]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[18]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[19]  Steve Roach,et al.  Transformation-oriented programming: A development methodology for high assurance software , 2003, Adv. Comput..

[20]  Eelco Visser,et al.  Strategic Pattern Matching , 1999, RTA.

[21]  Claude Kirchner,et al.  Rewriting with Strategies in ELAN: A Functional Semantics , 2001, Int. J. Found. Comput. Sci..

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

[23]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[24]  Victor L. Winter An overview of HATS: a language independent high assurance transformation system , 1999, Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No.PR00122).

[25]  Maarten M. Fokkinga,et al.  Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire , 1991, FPCA.

[26]  Eelco Visser,et al.  The Essence of Strategic Programming , 2002 .

[27]  James A. McCoy An embedded system for safe, secure and reliable execution of high consequence software , 2000, Proceedings. Fifth IEEE International Symposium on High Assurance Systems Engineering (HASE 2000).

[28]  Eelco Visser,et al.  Language Independent Traversals for Program Transformation , 2000 .

[29]  M. Clavel Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications , 2000 .

[30]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[31]  Victor L. Winter Program Transformation in HATS , 1999 .

[32]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[33]  Eelco Visser,et al.  Building program optimizers with rewriting strategies , 1998, ICFP '98.

[34]  Eelco Visser,et al.  A core language for rewriting , 1998, WRLA.

[35]  Johan Jeuring,et al.  Merging Monads and Folds for Functional Programming , 1995, Advanced Functional Programming.

[36]  Eelco Visser,et al.  Stratego: A Language for Program Transformation Based on Rewriting Strategies , 2001, RTA.

[37]  Ralf Lämmel,et al.  Functional Transformation Systems , 2000, WFLP.

[38]  Frank Yellin,et al.  Inside the Java Virtual Machine , 1997 .

[39]  S. M. Eker,et al.  Associative-Commutative Matching Via Bipartite Graph Matching , 1995, Comput. J..

[40]  V. Rich Personal communication , 1989, Nature.

[41]  José Meseguer,et al.  Reflection and strategies in rewriting logic , 1996, WRLA.