Program derivation via list introduction

We present a new program transformation strategy based on the introduction of lists. This strategy overcomes some of the limitations of the tupling strategy, and in particular, it allows us to derive linear recursive programs when the tupling strategy is not successful. The linear recursive programs one may derive using this new strategy, have in most cases very good time and space performance. We present our list introduction strategy in the case of definite logic programs, but it can also be applied in the case of functional programs thereby improving some transformation techniques proposed by Cohen (1983) and by Chin and Hagiya (1995).

[1]  John Darlington,et al.  An Experimental Program Transformation and Synthesis System , 1986, Artif. Intell..

[2]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[3]  Mitchell Wand,et al.  Continuation-Based Program Transformation Strategies , 1980, JACM.

[4]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[5]  Alberto Pettorossi,et al.  Unfolding - Definition - Folding, in this Order, for Avaoiding Unnecessary Variables in Logic Programs , 1995, Theor. Comput. Sci..

[6]  Richard S. Bird The promotion and accumulation strategies in transformational programming , 1984, TOPL.

[7]  Maurice Bruynooghe,et al.  Compiling Control , 1989, J. Log. Program..

[8]  Philip Wadler,et al.  Deforestation: Transforming Programs to Eliminate Trees , 1990, Theor. Comput. Sci..

[9]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[10]  Wei-Ngan Chin Towards an automated tupling strategy , 1993, PEPM '93.

[11]  Valentin F. Turchin,et al.  The concept of a supercompiler , 1986, TOPL.

[12]  Wei-Ngan Chin,et al.  A transformation method for dynamic-sized tabulation , 1995 .

[13]  Norman H. Cohen Eliminating Redundant Recursive Calls. , 1983, TOPL.

[14]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[15]  Paul Tarau,et al.  Elementary Logic Programs , 1990, PLILP.

[16]  Alberto Pettorossi,et al.  Transformation of Logic Programs: Foundations and Techniques , 1994, J. Log. Program..

[17]  Richard S. Bird,et al.  Two exercises found in a book on algorithmics , 1987 .

[18]  Hisao Tamaki,et al.  Unfold/Fold Transformation of Logic Programs , 1984, ICLP.