Improving memory utilization in transforming recursive programs
In this paper we present some ideas for improving memory utilization in recursive programs. We give a method for transforming programs into "destructive" ones, in which variable values are discarded (by means of special operations) as soon as they are no longer necessary for computing other values. The corresponding memory cells may then be reused for storing results which will be obtained later on. We first extend the language of first order recursion equations, so that destructive operations may be represented in it, and we introduce its denotational semantics. We then study, under given hypotheses, the correctness problem of destructive programs and consider algorithms and heuristics for making their memory efficiency as high as possible.
KeywordsRecursion Equation Denotational Semantic Finite Lattice Correctness Problem Recursive Program
Unable to display preview. Download preview PDF.
- Burstall, R.M. and J. Darlington "A Transformation System for Developing Recursive Programs" J.A.C.M. Vol.24 No.1 pp.44–67 (Jan 77)Google Scholar
- Schwarz, J. "Using Annotations to Make Recursion Equations Behave" D.A.I. Research Report No.43 Edinburgh University (Sept. 77)Google Scholar
- Stoy, J. "Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory" The M.I.T. Press (1977)Google Scholar
- Tennent, R.D. "The Denotational Semantics of Programming Languages" C.A.C.M. Vol. 19 No.8 (Aug 76)Google Scholar
- Pettorossi, A. "A Method for Improving Memory Utilization in Recursive Programming" Report of Istituto di Automatica. Rome Univ. Italy (to be published).Google Scholar