Worst-case space and time complexity of recursive procedures

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.

[1]  Peter P. Puschner,et al.  Calculating the maximum execution time of real-time programs , 1989, Real-Time Systems.

[2]  Kurt Mehlhorn,et al.  Sorting and Searching , 1984 .

[3]  Edward M. Reingold,et al.  Binary Search Trees of Bounded Balance , 1973, SIAM J. Comput..

[4]  Johann Blieberger Discrete Loops and Worst Case Performance , 1994, Comput. Lang..

[5]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[6]  Kurt Mehlhorn,et al.  Data Structures and Algorithms 2: Graph Algorithms and NP-Completeness , 1984, EATCS Monographs on Theoretical Computer Science.

[7]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[8]  Philippe Flajolet,et al.  Average-Case Analysis of Algorithms and Data Structures , 1991, Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity.

[9]  Narain H. Gehani,et al.  Real-time Concurrent C: A language for programming dynamic real-time systems , 2004, Real-Time Systems.

[10]  A. D. Stoyenko,et al.  Real-time Euclid: a language for reliable real-time systems , 1989 .

[11]  Hideyuki Tokuda,et al.  Object-oriented real-time language design: constructs for timing constraints , 1990, OOPSLA/ECOOP '90.

[12]  Kurt Mehlhorn,et al.  On the Average Number of Rebalancing Operations in Weight-Balanced Trees , 1980, Theor. Comput. Sci..

[13]  Aloysius K. Mok,et al.  Evaluating tight execution time bounds of programs by annotations , 1989 .

[14]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[15]  Arnold Businger PORTAL Language Description , 1988, Lecture Notes in Computer Science.

[16]  Bill Broyles Notes , 1907, The Classical Review.

[17]  Hermann Kopetz,et al.  Distributed fault-tolerant real-time systems: the Mars approach , 1989, IEEE Micro.

[18]  Wolfgang A. Halang,et al.  Constructing Predictable Real Time Systems , 1991 .

[19]  Johann Blieberger,et al.  Real-time recursive procedures , 1995, Proceedings Seventh Euromicro Workshop on Real-Time Systems.

[20]  Chang Yun Park,et al.  Predicting program execution times by analyzing static and dynamic program paths , 1993, Real-Time Systems.

[21]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[22]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[23]  Donald E. Knuth,et al.  Sorting and Searching , 1973 .

[24]  D. Hofstadter,et al.  Godel, Escher, Bach: An Eternal Golden Braid , 1979 .