Hostname: page-component-78c5997874-j824f Total loading time: 0 Render date: 2024-11-15T07:39:36.281Z Has data issue: false hasContentIssue false

How powerful are folding/unfolding transformations?

Published online by Cambridge University Press:  07 November 2008

Hong Zhu
Affiliation:
Institute of Computer Software, Nanjing University, Nanjing, PR China, Department of Computing, The Open University, UK
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

This paper discusses the transformation power of Burstall and Darlington's folding/unfolding system, i.e. what kind of programs can be derived from a given one. A necessary condition of derivability is proved. The notion of inherent complexity of recursive functions in introduced. A bound on efficiency gain by folding/unfolding transformations is obtained for all reasonable computation models. The well-known partial correctness and incompleteness of the system are corollaries of the result. Examples of underivability are given, e.g. binary searching cannot be derived from linear searching, merge sorting cannot be derived from insert sorting.

Type
Articles
Copyright
Copyright © Cambridge University Press 1994

References

Bauer, F. L. and Broy, M. (ed) (1979) Program Construction. Lecture Notes in Computer Science 69, Springer-Verlag, Berlin.Google Scholar
Burstall, R. M. and Darlington, J. (1977) A transformation system for developing recursive programs. J. ACM, 24 (1): 4467.Google Scholar
Darlington, J. (1981 a) An experimental program transformation and synthesis system. Artificial Intelligence, 16: 146.Google Scholar
Darlington, J. (1978) A synthesis of several sorting algorithms, Acta Informatica, 11 91): 131.CrossRefGoogle Scholar
Darlington, J. (1981 b) The structured description of algorithm derivations. In de Bakker, and von Vliet, (Editors), Algorithmic Languages. IFIP, North Holland, Amsterdam, 1981b, pp 221250.Google Scholar
Darlington, J. (1984 a) Program transformation in the ALICE project. In Pepper, P. (Editor), Program Transformation and Programming Environments. Springer-Verlag, Berlin.Google Scholar
Darlington, J. (1984 b) The design of efficient data representations. In Biermann, A. W. et al. (Editors), Automatic Program Construction Techniques. Macmillan.Google Scholar
Darlington, J. (1985) Program transformation. BYTE, 10 (8): 201216.Google Scholar
Feather, M. S. (1982) A system for assisting program transformation. ACM TOPLAS, 4 (1): 120.Google Scholar
Gunter, C. A. and Scott, D. S. (1990) Semantic domains. In van Leeuwen, J. (Editor), Handbook of Theoretical Computer Science, pp 633674, Elsevier.Google Scholar
Kleene, S. C. (1951) Introduction to Metamathematics. North Holland.Google Scholar
Kott, L. (1985) Unfold/fold program transformation. In Nivat, M. and Reynolds, J. C. (Editors), Algebraic Methods in Semantics. Cambridge University Press.Google Scholar
Manna, Z. (1974) Mathematical Theory of Computation. McGraw-Hill.Google Scholar
Meertens, L. G. T. (ed) (1987) Program Specification and Transformation. IFIP, North-Holland, Amsterdam.Google Scholar
Nielson, H. R. and Nielson, F. (1990) Eureka Definition for Free! In ESOP '90, pp 291305.CrossRefGoogle Scholar
Partsch, J. and Stenbruggen, R. (1983) Program transformation systems. Computing Surveys, 15 (3): 199236.Google Scholar
Pepper, P. (ed) (1984) Program Transformation and Programming Environments. Springer-Verlag, Berlin.CrossRefGoogle Scholar
Pettorossi, A. (1984) A powerful strategy for deriving efficient programs by transformation. In ACM Symposium on Lisp and Functional Programming, pp 273281, Austin, Texas.Google Scholar
Pettorossi, A. (1989) Derivation of programs which traverse their input data only once. In Cioni, G. and Salwicki, A. (Editors), Advanced Programming Methodologies, pp 165184, Academic Press.CrossRefGoogle Scholar
Pettorossi, A. and Burstall, R. M. (1982) Deriving very efficient algorithms for evaluating linear recurrence relations using the program transformation technique. Acta Informatica, 18: 181209.Google Scholar
Schmidt, D. A. (1986) Denotational Semantics: A methodology for language development. Allyn and Bacon.Google Scholar
Wadler, P. L. and Hughes, R. J. M. (1987) Projections for strictness analysis. In Proc. 3rd International Conference on Functional Programming Languages and Computer Architecture,Portland, Oregon.CrossRefGoogle Scholar
Wadler, P. (1988) Strictness analysis aids time analysis. In Conference Record of the 15th Annual ACM Symposium on Principles of Programming Languages, pp 119132, San Diego, CA.CrossRefGoogle Scholar
Yongqian, S., et al. (1987) Termination preserving problem in the transformation of applicative programs. J. of Computer Science and Technology, 2 (3): 191201.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.