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.
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).
[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).
[WAL 76] Walter, Kenneth G.: Recursion Analysis for Compiler Optimization. Communications of the ACM, September, 1976, Volume 19, Number 9, 514–516.
[WIN82] Winklmann, Karl: On the compolexity of some problems concerning the use of procedures. I. Acta Informatica18, 299–318 (1982).
Author information
Authors and Affiliations
Rights 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
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF02240192