Skip to main content

Recursion versus iteration at higher-orders

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1346))

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.

Unable to display preview. Download preview PDF.

References

  1. Abelson, H., and Sussman, G., Structure And Interpretation Of Computer Progams, MIT Press/McGraw-Hill, NY, 1984.

    Google Scholar 

  2. Aho, A.V. and Ullman, J.D., Principles of Compiler Design, Addison-Wesley, 1979.

    Google Scholar 

  3. Auslander, M.A., and Strong, H.R., “Systematic recursion removal”, Communications ACM, 21, no. 2, pp 127–134, Feb 1978.

    Article  MATH  Google Scholar 

  4. Barendregt, H.P., The Lambda Calculus, Its Syntax and Semantics, revised edition, North-Holland, Amsterdam, 1984.

    MATH  Google Scholar 

  5. Böhm, C., and Berarducci, A., “Automatic synthesis of typed lambda-programs on term algebras”, Theoretical Computer Science, 39, pp 135–154, 1985.

    Article  MATH  MathSciNet  Google Scholar 

  6. Friedman, D.P., Wand, M., and Haynes, C.T., Essentials of Programming Languages, MIT Press/McGraw-Hill, NY, 1992.

    MATH  Google Scholar 

  7. Goerdt, A., “On the computational power of the finitely typed lambda-terms”, in Proceedings of 13th MFCS, LNCS 324, pp 318–328, 1988.

    MATH  MathSciNet  Google Scholar 

  8. Greibach, S.A., Theory of Program Structures: Schemes, Semantics, Verification, LNCS 36, Springer-Verlag, 1975.

    Google Scholar 

  9. 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.

    Article  MATH  MathSciNet  Google Scholar 

  10. Kamin, S.N., Programming Languages: An Interpreter-Based Approach, Addison-Wesley, 1990.

    Google Scholar 

  11. 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.

    Article  MATH  MathSciNet  Google Scholar 

  12. Kfoury, A.J., “Recursion, Tail-Recursion, and Iteration at Higher-Orders”. In preparation.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Mitchell, J.C., Foundations for Programming Languages, MIT Press, Cambridge, Mass, 1996.

    Google Scholar 

  15. Moschovakis, Y.N., Elementary Induction on Abstract Structures, North-Holland, 1974.

    Google Scholar 

  16. Moschovakis, Y.N., “The Formal Language of Recursion”, Journal of Symbolic Logic, 54, pp 1216–1252, 1989.

    Article  MATH  MathSciNet  Google Scholar 

  17. 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.

    Google Scholar 

  18. Peyton Jones, S.L., The Implementation of Functional Programming Languages, Prentice-Hall, 1987.

    Google Scholar 

  19. Pippenger, N., “Pebbling”, Fifth Symposium on Mathematical Foundations of Computer Science, IBM Japan, 1980.

    Google Scholar 

  20. Pippenger, N., “Advances in Pebbling”, Proc. of 9th ICALP, LNCS no. 140, Springer-Verlag, 1982.

    Google Scholar 

  21. Statman, R., “The typed λ-calculus is not elementary recursive”, Theoretical Computer Science, 9, pp 73–81, 1979.

    Article  MATH  MathSciNet  Google Scholar 

  22. Strong, H.R., “Translating recursion equations into flowcharts”, J. Computer and System Sciences, 5, pp 254–285, 1971.

    MATH  MathSciNet  Google Scholar 

  23. Walker, S.A. and Strong, H.R., “Characterizations of flowchartable recursions”, J. Computer and System Sciences, 7, pp 404–447, 1973.

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

S. Ramesh G Sivakumar

Rights and permissions

Reprints 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

Publish with us

Policies and ethics