skip to main content
article
Open Access

Eliminating Redundant Recursive Calls.

Published:01 July 1983Publication History
First page image

References

  1. 1 AHO, A.V., HOPCROFT, J.E., AND ULLMAN, J.D. The Design and Analysis of Computer Algorithms. Addison-Wesley, Reading, Mass., 1974. Google ScholarGoogle Scholar
  2. 2 BIRD, R.S. Tabulation techniques for recursive programs. ACM Comput. Surv. 12, 4 (Dec. 1980), 403-417. Google ScholarGoogle Scholar
  3. 3 BIRD, R.S. Improving programs by the introduction of recursion. Commun. ACM 20, 11 (Nov. 1977), 856-863. Google ScholarGoogle Scholar
  4. 4 BURSTALL, R.M., AND DARLINOTON, J. A transformation system for developing recursive programs. J. ACM 24, I (Jan. 1977), 44-67. Google ScholarGoogle Scholar
  5. 5 CHANDRA, A.K. Efficient compilation of linear recursive programs. In Conference Record, IEEE 14th Annual Symposium on Switching and Automata Theory (Iowa City, Iowa, Oct. 1973), pp. 16-25.Google ScholarGoogle Scholar
  6. 6 COHEN, N.H. Source-to-Source Improvement of Recursive Programs. Ph.D. dissertation, Division of Applied Sciences, Harvard Univ., Cambridge, Mass., May 1980.Google ScholarGoogle Scholar
  7. 7 COHEN, N.H. Characterization and elimination of redundancy in recursive programs. In Conference Record of the 6th Annual ACM Symposium on Principles of Programming Languages (San Antonio, Tex., Jan. 29-31, 1979), pp. 143-157. Google ScholarGoogle Scholar
  8. 8 DARLINGTON, J. Program transformation and synthesis: Present capabilities. Res. Rep. 77/43, Dept. of Computing and Control, Imperial College of Science and Technology, London, Sept. 1977.Google ScholarGoogle Scholar
  9. 9 DARLINGTON, J., AND BURSTALL, R.M. A system which automatically improves programs. Acta Inf. 6, 1 (Mar. 1976), 41-60.Google ScholarGoogle Scholar
  10. 10 FRIEDMAN, D.P., WISE, D.S., A~D WANO, M. Recursive programming through table look-up. In SYMSAC '76; proceedings of the 1976 ACM Symposium on Symbolic and Algebraic Computation (Yorktown Heights, N.Y., Aug. 10-12, 1976), R.D. Jenks (Ed.), pp. 85-89. Google ScholarGoogle Scholar
  11. 11 HILDEN, J. Elimination of recursive calls using a small table of "randomly" selected function values. BIT 16, 1 (1976), 60-73.Google ScholarGoogle Scholar
  12. 12 LEWIS, H.R. A new decidable problem, with applications. In Proceedings, IEEE 18th Annual Symposium on Foundations of Computer Science (Providence, R.I., Oct.-Nov. 1977), pp. 62-73.Google ScholarGoogle Scholar
  13. 13 MICHIE, D. "Memo" functions and machine learning. Nat. 218, 5136 (Apr. 6, 1968), 19-22.Google ScholarGoogle Scholar
  14. 14 PATERSON, M.S., ANO HEWITr, C.E. Comparative schematology. In Record of the Project MAC Conference on Concurrent Systems and Parallel Computation (Woods Hole, Mass., June 2-5, 1970), pp. 119-127.Google ScholarGoogle Scholar
  15. 15 PIPPENCER, N. Pebbling. Res. Rep. RC 8258, IBM Thomas J. Watson Research Center, Yorktown Heights, N.Y., May 1980.Google ScholarGoogle Scholar
  16. 16 STRONG, H.R. Translating recursion equations into flowcharts. J. Comput. Syst. Sci. 5, 3 (June 1971), 254-285.Google ScholarGoogle Scholar
  17. 17 SWAMY, S., A~D SAVAGE, J.E. Space-time tradeoffs for linear recursion. In Conference Record of the 6th Annual ACM Symposium on Principles of Programming Languages (San Antonio, Tex., Jan. 29-31, 1979), pp. 135-142. Google ScholarGoogle Scholar
  18. 18 VUILLEMIN, J. Correct and optimal implementations of recursion in a simple programming language. J. Comput. $yst. Sci. 9, 3 (Dec. 1974), 332-354.Google ScholarGoogle Scholar

Index Terms

  1. Eliminating Redundant Recursive Calls.

              Recommendations

              Reviews

              Jiri Horejs

              The methods of tabulating results of recursive calls to avoid their recomputations are surveyed in [1]. The reviewed paper considers a rather special, theoretically simple, yet practically significant (as demonstrated by numerous examples) class of programs represented by the schema: f( x) :9I = if p( x) then a( a) else b ( x), f)( c( x)). f( d( x))). Under some constraints (like commutativity of c and d), small tables, which save exactly the results to be used later, can be designed systematically with no heuristic involved. The method thus permits the user to automatically transform considered programs to their (partially equivalent) nonredundant counterparts. The interested reader may find it useful to also consult [2], which is not referred to in this paper.

              Access critical reviews of Computing literature here

              Become a reviewer for Computing Reviews.

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM Transactions on Programming Languages and Systems
                ACM Transactions on Programming Languages and Systems  Volume 5, Issue 3
                July 1983
                244 pages
                ISSN:0164-0925
                EISSN:1558-4593
                DOI:10.1145/2166
                Issue’s Table of Contents

                Copyright © 1983 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 July 1983
                Published in toplas Volume 5, Issue 3

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader