2009
DOI: 10.1007/978-3-642-00590-9_14
|View full text |Cite
|
Sign up to set email alerts
|

Amortised Memory Analysis Using the Depth of Data Structures

Abstract: Abstract. Hofmann and Jost have presented a heap space analysis [1] 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 bound… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
29
0

Year Published

2009
2009
2014
2014

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 26 publications
(29 citation statements)
references
References 18 publications
0
29
0
Order By: Relevance
“…Essentially, the inference is done by a conventional type checking that produces linear inequalities which can be solved with linear programming. Furthermore, it has been shown [2] that the same potential-based approach can be similarly applied to a wide range of resources such as time and stack space [5] as well as to polymorphic, higher-order programs [6]. Now consider the function pairs:L(int)→L(int, int) that computes the twoelement sets of a given set (if one views the input list as a set).…”
Section: Amortized Analysis: Examples and Intuitionmentioning
confidence: 99%
“…Essentially, the inference is done by a conventional type checking that produces linear inequalities which can be solved with linear programming. Furthermore, it has been shown [2] that the same potential-based approach can be similarly applied to a wide range of resources such as time and stack space [5] as well as to polymorphic, higher-order programs [6]. Now consider the function pairs:L(int)→L(int, int) that computes the twoelement sets of a given set (if one views the input list as a set).…”
Section: Amortized Analysis: Examples and Intuitionmentioning
confidence: 99%
“…While there has subsequently been significant interest in the use of amortised analysis for automatic resource usage analysis, using an advanced per-reference potential, none of this newer work, however, considers lazy evaluation. Hofmann and Jost [19] were the first to develop an automatic amortised analysis for heap consumption, exploiting a difference metric similar to that used by Crary and Weirich [11] (the latter, however, only check bounds, and therefore do not perform an automatic static analysis of the kind we require); Hofmann et al have extended their method to cover a comprehensive subset of Java, including imperative updates, inheritance and type casts [20,21]; Shkaravska et al [41] subsequently considered heap consumption inference for first-order polymorphic lists; and Campbell [9] has developed the ideas of depth-based and temporary credit uses to give better results for stack usage. Hoffmann et al [18] achieved another breakthrough by extending the technique to infer multivariate polynomial cost functions, still only requiring efficient LP solving.…”
Section: Related Workmentioning
confidence: 99%
“…The work [13] does a similar analysis where the stack bounds are given as the max-plus expressions on the depth of data structures. This analysis is still for functional programs.…”
Section: Related Workmentioning
confidence: 99%