Lifetime analysis for procedure parameters

5Citations
Citations of this article
3Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

Procedural abstraction is an important concept for functional and imperative programming as well. Compilers should implement procedures and calls as efficient as possible. This paper addresses techniques for both memory and runtime improvements of procedure calls. Usual implementations allocate storage for local objects of procedures (i.e. parameters, result and local variables) either in activation records on a runtime stack in the case of recursive procedures or in a global storage area otherwise. We show that objects of recursive procedures can also be allocated globally, if certain conditions on their lifetime are met. We present a method for systematic lifetime analysis based on a context-free grammar which describes the calling structure of the program. It is introduced for a simple functional language and then extended to cover further commom language properties. Furthermore it is shown that the method can nicely be combined with context dependent improvements of the compilation of calling sequences, e.g. for tail recursive calls.

Cite

CITATION STYLE

APA

Kastens, U., & Schmidt, M. (1986). Lifetime analysis for procedure parameters. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 213 LNCS, pp. 53–69). Springer Verlag. https://doi.org/10.1007/3-540-16442-1_4

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free