Amortised Memory Analysis Using the Depth of Data Structures
Hofmann and Jost have presented a heap space analysis  that finds linear space bounds for many functional programs. It uses an amortised analysis: assigning hypothetical amounts of free space (called potential) to data structures in proportion to their sizes using type annotations. Constraints on these annotations in the type system ensure that the total potential assigned to the input is an upper bound on the total memory required to satisfy all allocations.
We describe a related system for bounding the stack space requirements which uses the depth of data structures, by expressing potential in terms of maxima as well as sums. This is achieved by adding extra structure to typing contexts (inspired by O’Hearn’s bunched typing ) to describe the form of the bounds. We will also present the extra steps that must be taken to construct a typing during the analysis.
KeywordsInduction Hypothesis Type System Operational Semantic Functional Programming Structural Rule
- 1.Hofmann, M., Jost, S.: Static prediction of heap space usage for first-order functional programs. In: POPL 2003: Proceedings of the 30th ACM Symposium on Principles of Programming Languages, New Orleans. ACM Press, New York (2003)Google Scholar
- 4.Jost, S., Loidl, H.W., Hammond, K.: Report on stack-space analysis (revised). Deliverable D05, The Embounded Project (IST-510255) (2007)Google Scholar
- 5.Campbell, B.: Prediction of linear memory usage for first-order functional programs. In: Trends in Functional Programming, vol. 9 (2008) (to appear)Google Scholar
- 7.Campbell, B.: Type-based amortized stack memory prediction. PhD thesis, University of Edinburgh (2008)Google Scholar
- 8.Jost, S., Loidl, H.W., Hammond, K.: Report on heap-space analysis. Deliverable D11, The Embounded Project (IST-510255 ) (2007)Google Scholar
- 9.Jost, S.: Amortised Analysis for Functional Programs. PhD thesis, Ludwig-Maximilians-University (forthcoming, provisional title) (2008)Google Scholar
- 14.Chin, W.N., Khoo, S.C., Xu, D.N.: Extending sized type with collection analysis. In: PEPM 2003: Proceedings of the 2003 ACM SIGPLAN workshop on Partial Evaluation and Semantics-based Program Manipulation, pp. 75–84. ACM Press, New York (2003)Google Scholar
- 15.Chin, W.N., Khoo, S.C., Qin, S., Popeea, C., Nguyen, H.H.: Verifying safety policies with size properties and alias controls. In: ICSE 2005: Proceedings of the 27th International Conference on Software Engineering, pp. 186–195. ACM Press, New York (2005)Google Scholar
- 17.Chin, W.N., Nguyen, H.H., Popeea, C., Qin, S.: Analysing memory resource bounds for low-level programs. In: ISMM 2008: Proceedings of the 7th international symposium on Memory management, pp. 151–160. ACM, New York (2008)Google Scholar
- 18.Vasconcelos, P.: Space Cost Analysis Using Sized Types. PhD thesis, University of St Andrews (2008)Google Scholar