Rewriting systems on FP expressions that reduce the number of sequences they yield

In this paper, we are interested in the application of program transformation for minimizing the number of intermediary sequences used in iterative programs. We shall use the FP language for presenting programs. The transformation rules are based on the algebra of functional programs. In contrast to the other systems of rules for program transformation, sets of rules presented here are convergent (i.e. finitely terminating and confluent) rewriting systems. These rewriting systems are the result of the Knuth-Bendix procedure applied to a set of equations. The equations are valided by the algebra of functional programs. We use the implementation of the Knuth-Bendix procedure in the system REVE. If REVE is applied to a set of equations and if it does not fail, then it returns a convergent rewriting set of rules. With such a rewriting system, the task of transforming a program is reduced to rewrite it until we get its normal form. Thus we propose a set of valid equations and we discuss how convergent rewriting systems can be generated using REVE.

[1]  John W. Backus,et al.  The Algebra of Functional Programs: Function Level Reasoning, Linear Equations, and Extended Definitions , 1981, ICFPC.

[2]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[3]  D. Knuth,et al.  Simple Word Problems in Universal Algebras , 1983 .

[4]  John H. Williams,et al.  On the Development of the Algebra of Functional Programs , 1982, TOPL.

[5]  Gerard Huet,et al.  Conflunt reductions: Abstract properties and applications to term rewriting systems , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[6]  Robin Milner,et al.  A Metalanguage for interactive proof in LCF , 1978, POPL.

[7]  Bharat Jayaraman,et al.  Theory of Linear Equations Applied to Program Transformation , 1983, IJCAI.

[8]  Pierre Lescanne,et al.  Computer experiments with the REVE term rewriting system generator , 1983, POPL '83.

[9]  Nachum Dershowitz,et al.  Orderings for term-rewriting systems , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[10]  Jean-Pierre Jouannaud,et al.  Recursive Decomposition Ordering , 1982, Formal Description of Programming Concepts.

[11]  John W. Backus,et al.  Function level programs as mathematical objects , 1981, FPCA '81.

[12]  Claude Kirchner,et al.  Incremental Construction of Unification Algorithms in Equational Theories , 1983, ICALP.

[13]  Leonidas J. Guibas,et al.  Compilation and delayed evaluation in APL , 1978, POPL.

[14]  Gérard P. Huet,et al.  Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980, J. ACM.