Real-Time Systems

, Volume 11, Issue 2, pp 115–144 | Cite as

Worst-case space and time complexity of recursive procedures

  • Johann Blieberger
  • Roland Lieger


The purpose of this paper is to show that recursive procedures can be used for implementing real-time applications without harm, if a few conditions are met. These conditions ensure that upper bounds for space and time requirements can be derived at compile time. Moreover they are simple enough such that many important recursive algorithms can be implemented, for example Mergesort or recursive tree-traversal algorithms.

In addition, our approach allows for concentrating on essential properties of the parameter space during space and time analysis. This is done by morphisms that transfer important properties from the original parameter space to simpler ones, which results in simpler formulas of space and time estimates.


Operating System Parameter Space Time Complexity Time Analysis Time Estimate 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Aho, A. V., Hopcroft, J. E., and Ullman, J. D. 1974. The Design and Analysis of Computer Algorithms. Reading, MA: Addison-Wesley.Google Scholar
  2. Blieberger, J. 1994. Discrete loops and worst case performance. Computer Languages 20(3): 193–212.Google Scholar
  3. Blieberger, J., and Lieger, R. 1995. Real-time recursive procedures. In Proceedings of the 7th EUROMICRO Workshop on Real-Time Systems, pages 229–235, Odense.Google Scholar
  4. Blum, N., and Mehlhorn, K. 1980. On the average number of rebalancing operations in weight-balanced trees. Theoretical Computer Science 11: 303–320.Google Scholar
  5. Booch, G. 1991. Object-Oriented Design with Applications. Redwood City, CA: Benjamin/Cummings.Google Scholar
  6. Businger, A. 1985. PORTAL Language Description, volume 198 of Lecture Notes in Computer Science. Berlin: Springer Verlag.Google Scholar
  7. DIN 66253, Teil 2, Beuth Verlag, Berlin. 1982. Programmiersprache PEARL, Full PEARL.Google Scholar
  8. Ellis, M. A., and Stroustrup, B. 1990. The Annotated C++ Reference Manual. Reading, MA: Addison-Wesley.Google Scholar
  9. Forsyth, C. 1993. Using the worst-case execution analyser. Technical report, York Software Engineering Ltd., University of York: Task 8, Volume D Deliverable on ESTEC contract 9198/90/NL/SF, May.Google Scholar
  10. Gehani, N., and Ramamritham, K. 1991. Real-time Concurrent C: A language for programming dynamic real-time systems. The Journal of Real-Time Systems 3: 377–405.Google Scholar
  11. Halang, W. A., and Stoyenko, A. D. 1991. Constructing Predictable Real Time Systems. Boston: Kluwer Academic Publishers.Google Scholar
  12. Hofstadter, D. R. 1979. Gödel, Escher, Bach—an Eternal Golden Braid. New York: Basic Books.Google Scholar
  13. Ishikawa, Y., Tokuda, H., and Mercer, C. W. 1990. Object-oriented real-time language design: Constructs for timing constraints. In ECOOP/OOPSLA '90 Proceedings, pages 289–298, October.Google Scholar
  14. ISO/IEC 8652. Ada Reference manual, 1995.Google Scholar
  15. Kligerman, E., and Stoyenko, A. D. 1986. Real-time Euclid: A language for reliable real-time systems. IEEE Transactions on Software Engineering 12(9): 941–949.Google Scholar
  16. Knuth, D. E. 1973. Sorting and Searching, volume 3 of The Art of Computer Programming. Reading, Mass.: Addison-Wesley.Google Scholar
  17. Kopetz, H., Damm, A., Koza, C., Mulazzani, M., Schwabl, W., Senft, C., and Zainlinger, R. 1989. Distributed fault-tolerant real-time systems: The MARS approach. IEEE Micro, pages 25–40.Google Scholar
  18. Lieger, R., and Blieberger, J. 1994. The Ackermann-function effort in space and time. Technical Report 183/1-48, Department of Automation, Technical University Vienna.Google Scholar
  19. Liu, C. L., and Layland, J. W. 1973. Scheduling algorithms for multiprogramming in a hard real-time environment. Journal of the ACM 20(1): 46–61.Google Scholar
  20. Mehlhorn, K. 1984. Graph Algorithms and NP-Completeness, volume 2 of Data Structures and Algorithms. Berlin: Springer-Verlag.Google Scholar
  21. Mehlhorn, K. 1984. Sorting and Searching, volume 1 of Data Structures and Algorithms. Berlin: Springer-Verlag.Google Scholar
  22. Mok, A. K. 1984. The design of real-time programming systems based on process models. In Proceedings of the IEEE Real Time Systems Symposium, pages 5–16, Austin, Texas, IEEE Press.Google Scholar
  23. Mok, A. K., Amerasinghe, P., Chen, M., and Tantisirivat, K. 1989. Evaluating tight execution time bounds of programs by annotations. In Proc. IEEE Workshop on Real-Time Operating Systems and Software, pages 74–80.Google Scholar
  24. Nievergelt, I., and Reingold, E. M. 1973. Binary search trees of bounded balance. SIAM Journal of Computing 2(1): 33–43.Google Scholar
  25. Park, C. Y. 1993. Predicting program execution times by analyzing static and dynamic program paths. The Journal of Real-Time Systems 5: 31–62.Google Scholar
  26. Puschner, P., and Koza, C. 1989. Calculating the maximum execution time of real-time programs. The Journal of Real-Time Systems 1: 159–176.Google Scholar
  27. Sedgewick, R. 1988. Algorithms. Reading, MA: Addison-Wesley, second edition.Google Scholar
  28. Shaw, A. C. 1989. Reasoning about time in higher-level language software. IEEE Transactions on software Engineering 15(7): 875–889.Google Scholar
  29. Vitter, J. S., and Flajolet, P. 1990. Average-case analysis of algorithms and data structures. In Jan van Leeuwen, editor, Handbook of Theoretical Computer Science, volume A: Algorithms and Complexity, pages 431–524. North-Holland.Google Scholar

Copyright information

© Kluwer Academic Publishers 1996

Authors and Affiliations

  • Johann Blieberger
    • 1
  • Roland Lieger
    • 2
  1. 1.Department of AutomationTechnical University of ViennaViennaAustria
  2. 2.Department of AutomationTechnical University of ViennaViennaAustria

Personalised recommendations