Skip to main content
Log in

Pseudo-recursive procedures

Pseudo-rekursive Prozeduren

  • Published:
Computing Aims and scope Submit manuscript

Abstract

Based on a decidable notion of recursivity of procedures (or functions) in ALGOL-like programs we define pseudo-recursive procedures to be those that do not need an activation record of their own on the runtime stack; their storage can be allocated within the activation record of a strictly-recursive (i.e. not pseudo-recursive) dynamic predecessor. We present an algorithm that characterizes each procedure of a program as being either non-recursive, pseudo-recursive or strictlyrecursive and associates each pseudo-recursive procedure with one appropriate strictly-recursive one. With this information a better suited implementation technique can be chosen for each type of procedure.

Zusammenfassung

Ausgehend von einem entscheidbaren Rekursivitäts-Begriff von Prozeduren (oder Funktionen) in Algol-ähnlichen Programmen definieren wir eine pseudo-rekursive Prozedur als solche, die keine eigene Schachtel (activation record) auf dem Laufzeit-Keller benötigt; sie kann vielmehr innerhalb der Schachtel eines stark-rekursiven (d. h. eines rekursiven aber nicht pseudorekursiven) dynamischen Vorgängers abgelegt werden. Wir stellen einen Algorithmus vor, der jede Prozedur eines Programms entweder als nicht-rekursiv pseudo-rekursiv oder stark-rekursiv einstuft und der jeder pseudo-rekursiven eine geeignete stark-rekursive zuordnet. Anhand dieser Information kann der Übersetzer für jeden Prozedur-Typ eine eigens darauf zugeschnittene Implementierung auswählen.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • [AU79] Aho, Alfred V., Ullman, Jeffrey D.: Principles of Compiler Design, Chapter 13. Addison-Wesley Publishing Company, Third Printing, April 1979.

  • [LAN73] Langmaack, Hans: On correct procedure parameter passing in higher programming languages. Acta Informatica2, 110–142 (1973).

    Google Scholar 

  • [PET79] Petersen, H.-D.: Unpublished manuscript, Universität Stuttgart 1979.

  • [TAR74] Tarjan, R.: Finding dominators in directed graphs. SIAM Journal of Comp.3, 63–89 (1974).

    Google Scholar 

  • [WAL 76] Walter, Kenneth G.: Recursion Analysis for Compiler Optimization. Communications of the ACM, September, 1976, Volume 19, Number 9, 514–516.

    Article  Google Scholar 

  • [WIN82] Winklmann, Karl: On the compolexity of some problems concerning the use of procedures. I. Acta Informatica18, 299–318 (1982).

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Armbruster, D., Oechsle, R. Pseudo-recursive procedures. Computing 35, 247–256 (1985). https://doi.org/10.1007/BF02240192

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF02240192

AMS Subject Classifications

Key words

Navigation