Abstract
We extend the well-known analysis of recursion-removal in first-order program schemes to a higher-order language of finitely typed and polymorphically typed functional programs, the semantics of which is based on call-by-name parameter-passing. We introduce methods for recursion-removal, i.e. for translating higher-order recursive programs into higher-order iterative programs, and determine conditions under which this translation is possible. Just as finitely typed recursive programs are naturally classified by their orders, so are finitely typed iterative programs. This syntactic classification of recursive and iterative programs corresponds to a semantic (or computational) classification: the higher the order of programs, the more functions they can compute.
Partly supported by NSF grant CCR-9417382.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Abelson, H., and Sussman, G., Structure And Interpretation Of Computer Progams, MIT Press/McGraw-Hill, NY, 1984.
Aho, A.V. and Ullman, J.D., Principles of Compiler Design, Addison-Wesley, 1979.
Auslander, M.A., and Strong, H.R., “Systematic recursion removal”, Communications ACM, 21, no. 2, pp 127–134, Feb 1978.
Barendregt, H.P., The Lambda Calculus, Its Syntax and Semantics, revised edition, North-Holland, Amsterdam, 1984.
Böhm, C., and Berarducci, A., “Automatic synthesis of typed lambda-programs on term algebras”, Theoretical Computer Science, 39, pp 135–154, 1985.
Friedman, D.P., Wand, M., and Haynes, C.T., Essentials of Programming Languages, MIT Press/McGraw-Hill, NY, 1992.
Goerdt, A., “On the computational power of the finitely typed lambda-terms”, in Proceedings of 13th MFCS, LNCS 324, pp 318–328, 1988.
Greibach, S.A., Theory of Program Structures: Schemes, Semantics, Verification, LNCS 36, Springer-Verlag, 1975.
Hillebrand, G.G., Kanellakis, P.C., Mairson, H.G., and Vardi, M.Y., “Undecidable Boundedness Problems for Datalog Programs”, Journal of Logic Programming 25:2, pp 163–190, 1995.
Kamin, S.N., Programming Languages: An Interpreter-Based Approach, Addison-Wesley, 1990.
Kfoury, A.J., Tiuryn, J., and Urzyczyn, P., “On the expressive power of finitely typed and universally polymorphic recursive procedures”, Theoretical Computer Science, 93, pp 1–41, 1992.
Kfoury, A.J., “Recursion, Tail-Recursion, and Iteration at Higher-Orders”. In preparation.
Kozen, D., and Tiuryn, J., “Logics of Programs”, in Handbook of Theoretical Computer Science, Vol. B, Formal Methods and Semantics, ed. J. van Leeuven, Elsevier Science Publ. and The MIT Press, pp 789–840, 1990.
Mitchell, J.C., Foundations for Programming Languages, MIT Press, Cambridge, Mass, 1996.
Moschovakis, Y.N., Elementary Induction on Abstract Structures, North-Holland, 1974.
Moschovakis, Y.N., “The Formal Language of Recursion”, Journal of Symbolic Logic, 54, pp 1216–1252, 1989.
Paterson, M.S., and Hewitt, C., “Comparative schematology”, MIT A.I. Lab Technical Memo No. 201 (also in Proc. of Project MAC Conference on Concurrent Systems and Parallel Computation), 1970.
Peyton Jones, S.L., The Implementation of Functional Programming Languages, Prentice-Hall, 1987.
Pippenger, N., “Pebbling”, Fifth Symposium on Mathematical Foundations of Computer Science, IBM Japan, 1980.
Pippenger, N., “Advances in Pebbling”, Proc. of 9th ICALP, LNCS no. 140, Springer-Verlag, 1982.
Statman, R., “The typed λ-calculus is not elementary recursive”, Theoretical Computer Science, 9, pp 73–81, 1979.
Strong, H.R., “Translating recursion equations into flowcharts”, J. Computer and System Sciences, 5, pp 254–285, 1971.
Walker, S.A. and Strong, H.R., “Characterizations of flowchartable recursions”, J. Computer and System Sciences, 7, pp 404–447, 1973.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kfoury, A.J. (1997). Recursion versus iteration at higher-orders. In: Ramesh, S., Sivakumar, G. (eds) Foundations of Software Technology and Theoretical Computer Science. FSTTCS 1997. Lecture Notes in Computer Science, vol 1346. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0058023
Download citation
DOI: https://doi.org/10.1007/BFb0058023
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63876-6
Online ISBN: 978-3-540-69659-9
eBook Packages: Springer Book Archive