|
ABSTRACT
This paper presents an analysis that derives a formula describing the worst-case live heap space usage of programs in a functional language with automated memory management (garbage collection). First, the given program is automatically transformed into bound functions that describe upper bounds on the live heap space usage and other related space metrics in terms of the sizes of function arguments. The bound functions are simplified and rewritten to obtain recurrences, which are then solved to obtain the desired formulas characterizing the worst-case space usage. These recurrences may be difficult to solve due to uses of the maximum operator. We give methods to automatically solve categories of such recurrences. Our analysis determines and exploits monotonicity and monotonicity-like properties of bound functions to derive upper bounds on heap usage, without considering behaviors of the program that cannot lead to maximal space usage.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
|
 |
3
|
|
| |
4
|
D. Aspinall, S. Gilmore, M. Hofmann, D. Sannella, and I. Stark. Mobile resource guarantees for smart devices. In Proceedings of the International Workshop on Construction and Analysis of Safe, Secure and Interoperable Smart Devices (CASSIS), volume 3362 of LNCS, pages 1--26. Springer, 2005.
|
 |
5
|
|
| |
6
|
R. Bagnara, A. Pescetti, A. Zaccagnini, E. Zaffanella, and T. Zolo. PURRS: The Parma University's recurrence relation solver. http: //www.cs.unipr.it/purrs.
|
| |
7
|
|
 |
8
|
Víctor Braberman , Federico Fernández , Diego Garbervetsky , Sergio Yovine, Parametric prediction of heap memory requirements, Proceedings of the 7th international symposium on Memory management, June 07-08, 2008, Tucson, AZ, USA
[doi> 10.1145/1375634.1375655]
|
| |
9
|
D. Cachera, T. Jensen, D. Pichardie, and G. Schneider. Certified memory usage analysis. In Formal Methods 05, volume 3582 of LNCS, pages 91--106. Springer-Verlag, 2005.
|
 |
10
|
Wei-Ngan Chin , Huu Hai Nguyen , Corneliu Popeea , Shengchao Qin, Analysing memory resource bounds for low-level programs, Proceedings of the 7th international symposium on Memory management, June 07-08, 2008, Tucson, AZ, USA
[doi> 10.1145/1375634.1375656]
|
| |
11
|
W.-N. Chin, H. H. Nguyen, S. Qin, and M. Rinard. Memory usage verification for oo programs. In SAS 05, pages 70--86. Springer, 2005.
|
 |
12
|
|
 |
13
|
|
 |
14
|
|
 |
15
|
|
 |
16
|
|
 |
17
|
|
 |
18
|
John Hughes , Lars Pareto , Amr Sabry, Proving the correctness of reactive systems using sized types, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.410-423, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.240882]
|
 |
19
|
|
| |
20
|
|
| |
21
|
M. B. Monagan, K. O. Geddes, K. M. Heal, G. Labahn, S. M. Vorkoetter, J. McCarron, and P. DeMarco. Maple 10 Programming Guide. Maplesoft, 2005.
|
 |
22
|
|
| |
23
|
|
| |
24
|
L. Unnikrishnan. Automatic Live Memory Bound Analysis for High-Level Languages. PhD thesis, Stony Brook University, 2008. Available at http://www.cs.sunysb.edu/~leena/thesis.pdf.
|
| |
25
|
|
 |
26
|
|
| |
27
|
|
|