|
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
|
|
|
|
|
Yanhong A. Liu , Scott D. Stoller , Tim Teitelbaum, Discovering auxiliary information for incremental computation, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.157-170, January 21-24, 1996, St. Petersburg Beach, Florida, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|