Abstract
This paper presents a general approach to the optimization of function calls. We define the class of "low cost function calls" and introduce a technique of detecting and executing these calls in a modified shallow binding system known as "standardized shallow binding". We show that by this technique the overhead expenses of changing environments for low cost calls are nearly cut down to zero. The new method can be applied to any imperative or applicative language. In this paper statically scoped LISP is taken as an example; it is shown how the technique has been applied in the implementation of a LISP interpreter. We also prove that our method exceeds a number of optimizations that have been proposed recently.
Chapter PDF
References
Baker, H. G. Shallow Binding in LISP 1.5 CACM, Vol. 21 No. 7, pp. 565–569, July 1978
Bauchrowitz, N. Vergleich einer operationellen mit einer denotationellen Semantik für LISP Diplomarbeit am Institut für Informatik und Praktische Mathematik der Universität Kiel, 1980
Felgentreu, K.-U. Implementierung eines schnellen LISP-Interpretierers Diplomarbeit am Institut für Informatik und Praktische Mathematik der Universität Kiel, February 1984
Felgentreu, K.-U. Decidability Problems concerning the Optimization of Function Calls Bericht Nr. 3/85-I, Institut für Instrumentells Mathematik der Universität Münster, 1985
Felgentreu, K.-U., Lippe, W.-M. Dynamic Optimization of Covered Tail Recursive Functions in Applicative Languages (to appear in the Proceedings of the ACM Computer Science Conference February 1986)
Felgentreu, K.-U., Lippe, W.-M., Simon, F. Optimizing Static Scope LISP by Repetitive Interpretation of Recursive Function Calls (to appear in IEEE Transactions on Software Engineering)
Greussay, P. Iterative Interpretation of Tail-Recursive LISP Procedures in Ecole de la Recherche, Universite de Paris, 1978
Langmaack, H. On correct Procedure Parameter Transmission in Higher Programming Languages Acta Informatica 2, p. 110–142, 1973
Lippe, W.-M., Simon, F. LISP/N — Basic Definitions and Properties Bericht Nr. 4/79, Institut für Informatik und Praktische Mathematik, Universität Kiel, Oktober 1979
McCarthy, J., et. al. LISP 1.5 Programmer's Manual MIT Press, Cambridge, Massachusetts, 1966
Perrot, J. F. Principes d'implementation de processus recursifs in Ecole de la Recherche, Universite de Paris, 1978
Saint-James, E. Recursion is more efficient than Iteration Conference Record of the 1984 ACM Symposium on LISP and Functional Programming, August 1984
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1986 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Felgentreu, KU., Lippe, WM. (1986). A general approach to the optimization of function calls. In: Robinet, B., Wilhelm, R. (eds) ESOP 86. ESOP 1986. Lecture Notes in Computer Science, vol 213. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16442-1_3
Download citation
DOI: https://doi.org/10.1007/3-540-16442-1_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-16442-5
Online ISBN: 978-3-540-39782-3
eBook Packages: Springer Book Archive