Control Flow Analysis for Recursion Removal

  • Stefaan Himpe
  • Francky Catthoor
  • Geert Deconinck
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2826)


In this paper a new method for removing recursion from algorithms is demonstrated. The method for removing recursion is based on algebraic manipulations of a mathematical model of the control flow. The method is not intended to solve all possible recursion removal problems, but instead can be seen as one tool in a larger tool box of program transformations. Our method can handle certain types of recursion that are not easily handled by existing methods, but it may be overkill for certain types of recursion where existing methods can be applied, like tail-recursion. The motivation for a new method is discussed and it is illustrated on an MPEG4 visual texture decoding algorithm.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    JTC1/SC29/WG11/N4668, I.: Overview of the mpeg-4 standard, Ed.: Rob Koenen (2002)Google Scholar
  2. 2.
    JTC1/SC29/WG11/N5231, I.: Mpeg 21 overview v.5, Eds.: Jan Bormans and Keith Hill (2002)Google Scholar
  3. 3.
    Catthoor, F., Wuytack, S., Greef, E.D., Balasa, F., Nachtergaele, L., Vandecap-pelle, A., de Greef, E., Wuytack, S.: Custom Memory Management Methodology: Exploration of Memory Organisation for Embedded Multimedia System Design, 1st edn. Kluwer Academic Publishers, Dordrecht (1998)zbMATHGoogle Scholar
  4. 4.
    Abelson, H., Sussman, G.J., Sussman, J.: Structure and Interpretation of Computer Programs, 2nd edn. MIT Press, Cambridge (1996), text also online at:; ISBN: 0-26201-153-0zbMATHGoogle Scholar
  5. 5.
    Bauer, F.L., Wossner, H.: Algorithmic Language and Program Development. Texts and Monographs in Computer Science. Springer, Heidelberg (1982); ISBN 0-387-11148-4zbMATHGoogle Scholar
  6. 6.
    Partsch, H.A.: Specification and Transformation of Programs: A Formal Approach to Software Development. Texts and monographs in Computer Science. Springer, Heidelberg (1990); ISBN 0-38752-356-1zbMATHGoogle Scholar
  7. 7.
    Kaser, O., Pawagi, S., Ramakrishnan, C.R.: On the conversion of indirect to direct recursion. ACM Letters on Programming Languages and Systems (LOPLAS) 2, 151–164 (1993)CrossRefGoogle Scholar
  8. 8.
    McCarthy, J., Abrahams, P.W., Edwards, D.J., Hart, T.P., Levin, M.I.: LISP 1.5 Programmer’s Manual. Manual. MIT Press, Cambridge (1962)Google Scholar
  9. 9.
    Backus, J.: Can programming be liberated from the von neumann style? A functional style and its algebra of programs. Communications of the ACM 21, 613–641 (1978); ISSN: 0001-0782zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Backus, J.: From function level semantics to program transformation and optimization. In: Nivat, M., Floyd, C., Thatcher, J., Ehrig, H. (eds.) CAAP 1985 and TAPSOFT 1985. LNCS, vol. 185, pp. 60–91. Springer, Heidelberg (1985)Google Scholar
  11. 11.
    Collard, J.F.: Reasoning about Program Transformations: Imperative programming and flow of data. Springer, Heidelberg (2003); ISBN 0-387-95391-4zbMATHGoogle Scholar
  12. 12.
    Sabry, A.: What is a purely functional language? The Journal of Functional Programming 8, 1–22 (1998)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Liu, Y.A., Stoller, S.D.: From recursion to iteration: What are the optimizations? In: Proceedings of the 2000 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM 2000), Boston, Massachusetts, USA. SIGPLAN Notices, vol. 34, pp. 73–82. ACM Press, New York (1999)CrossRefGoogle Scholar
  14. 14.
    Ma, Z., Wong, C., Himpe, S., Delfosse, E., Catthoor, F., Deconinck, G.: Task concurrency analysis and exploration of visual texture decoder on a heterogeneous platform. In: Proceedings of the 2003 IEEE WORKSHOP ON SIGNAL PROCESSING SYSTEMS (SiPS 2003), Seoul, South Korea (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Stefaan Himpe
    • 1
  • Francky Catthoor
    • 2
  • Geert Deconinck
    • 1
  1. 1.Katholieke Universiteit LeuvenLeuven
  2. 2.IMECLeuven

Personalised recommendations