Abstract
The fold/unfold framework of Burstall and Darlington is a very powerful framework for transforming function definitions in the form of recursion equation schemes. This may be used to transform a function so as to improve the efficiency of its implementation. However, for this to work the user must supply so-called Eureka definitions and it may require some ingenuity to construct these. This paper shows that a class of these Eureka definitions can be derived in a rather systematic way.
Chapter PDF
Similar content being viewed by others
References
R. Burstall and J.Darlington. A transformation system for developing recursive programs. Journal of the ACM, 1977.
M. S. Feather. A system for assisting program transformation. ACM Transactions on Programming Languages and Systems, 1982.
P. Hudak and P.Wadler. Report on the Functional Programming Language Haskell. Technical Report, Glasgow University, 1988.
U. Jørring and W.L.Scherlis. Compilers and staging transformations. In Proc. 13th ACM Symposium on Principles of Programming Languages, 1986.
J. Launchbury. Projections for specialization. In Proc. of the IFIP TC2 Workshop on Partial Evaluation and Mixed Computation, North-Holland, 1988.
R. Milner. The standard ML core language. In Proc. 1984 ACM Conference on Lisp and Functional Programming, 1984.
T. Mogensen. Separating binding times in language specifications. In Proc. of Functional Programming and Computer Architecture, 1989.
F. Nielson and H. Riis Nielson. Forced transformations of OCCAM programs. Technical Report, Aarhus University, 1989.
H. Riis Nielson and F.Nielson. Automatic binding time analysis for a typed λ-calculus. Science of Computer Programming, 1988.
H. Riis Nielson and F. Nielson. Transformations on higher-order functions. In Proc. of Functional Programming and Computer Architecture, 1989.
W. Polak. Compiler Specification and Verification. LNCS 124, Springer, 1981.
J. C. Reynolds. On the relation between direct and continuation semantics. In Proceedings 2nd ICALP, Springer LNCS 14, 1974.
D. Turner. Miranda: a non-strict functional language with polymorphic types. In Functional Programming Language and Computer Architecture, Springer LNCS 201, 1985.
P. Wadler. Theorems for free! In Proc. 4th international conference on functional programming language and computer architecture, ACM Press, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nielson, H.R., Nielson, F. (1990). Eureka definitions for free! or Disagreement points for fold/unfold transformations. In: Jones, N. (eds) ESOP '90. ESOP 1990. Lecture Notes in Computer Science, vol 432. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-52592-0_70
Download citation
DOI: https://doi.org/10.1007/3-540-52592-0_70
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-52592-9
Online ISBN: 978-3-540-47045-8
eBook Packages: Springer Book Archive