ACM Home Page
Please provide us with feedback. Feedback
A powerful strategy for deriving efficient programs by transformation
Full text PdfPdf (692 KB)
Source Conference on LISP and Functional Programming archive
Proceedings of the 1984 ACM Symposium on LISP and functional programming table of contents
Austin, Texas, United States
Pages: 273 - 281  
Year of Publication: 1984
ISBN:0-89791-142-3
Author
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGART: ACM Special Interest Group on Artificial Intelligence
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 20,   Citation Count: 12
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/800055.802044
What is a DOI?

ABSTRACT

We present a method for deriving efficient iterative programs by transformation from recursive equation specifications. It consists of two phases: i) the transformation of general recursive programs into linear recursive ones, and ii) the transformation of linear recursive programs into iterative ones. In the first phase we apply the “tupling strategy” studied in [BUD77, Pet77], and implicitly used by other authors in the area of program transformation. That strategy enables us to introduce linear recursive functions, instead of the general recursive ones occurring in program specifications. In the second phase we apply known methods for transforming linear recursion into iteration (avoiding the use of stacks) [WaS73], and equivalence results between recursive schemas and flowchart schemas. Through various examples we show how the breaking of the transformation process into the above mentioned phases allows the derivation of efficient iterative algorithms. Those examples include challenges by Prof. E. Dijkstra and other authors. Through our method we were also able to improve some recent results for eliminating redundant calls in recursive programs [Coh83].


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Atkinson, M.D.:"The Cyclic Towers of Hanoi" Info. Proc. Lett. Vol.13(3) (Dec 1981) pag.118-119
 
2
3
 
4
Buneman, P. and Levy, L.:"The Towers of Hanoi Problem" Info. Proc. Lett. 10 (1980) pag.243-244
5
6
 
7
Darlington, J.:"A Synthesis of Several Sorting Algorithms" Acta Informatica 11 (1978) pag.1-30.
 
8
Darlington, J. and Burstall, R.M.:"A System Which Automatically Improves Programs" Acta Informatica 6 (1976) pag.41-60
 
9
 
10
Hayes, P.J.:"A Note on the Towers of Hanoi Problem" Computer Journal 20 (1977) pag.282-285
 
11
Kott, L.: "About Transformation System: A Theoretical Study" 3ème Colloque Intern. sur la Programmation. Paris (1978) Dunod. pag.232-247
 
12
Paterson, M.S. and Hewitt, C.E.:"Comparative Schematology" Proj. MAC Conf. On Concurrent Systems and Parallel Computation Woods Hole, (Mass. Jun 2-5 1970) pag.119-127.
 
13
Pettorossi, A.: "Transformation of Programs and Use of 'Tupling Strategy'" Infomatica 77 Conf. Bled Jugoslavia (1977) pag.1-6
 
14
Pettorossi, A.: "Methodologies for Transformations and Memoing in Applicative Languages" Ph.D. Computer Science Dept. Edinburgh (Forthcoming)
 
15
Pettorossi, A. and Burstall, R.M.:"Deriving Very Efficient Algorithms for Evaluating Linear Recurrence Relations Using The Program Transformation Technique" Acta Informatica 18 (1982) pag.181-206.
16
 
17
"Space Filling Curves, or How to Waste Time on a Plotter" Softw. Pract. and Exper. Vol.1 no.4 (1971) pag.403-410
 
18
Walker, S.A. and Strong, H.R.:"Characterizations of Flowchartable Recursions" JCSS Vol.7 no.4 (Aug.1973) pag.404-447
 
19
Walsh, T.R.:"Iteration strikes back at the Cyclic Towers of Hanoi" Info. Proc. Lett. 16(1983) pag.91-93
 
20
Wegbreit, B.:"Goal-directed Program Transformation" IEEE Trans. Software Engin. SE-2 (1976) pag.69-79
21
 
22

CITED BY  12