scispace - formally typeset
Proceedings ArticleDOI

Static prediction of heap space usage for first-order functional programs

Martin Hofmann, +1 more
- Vol. 38, Iss: 1, pp 185-197
Reads0
Chats0
TLDR
It is shown how to efficiently obtain linear a priori bounds on the heap space consumption of first-order functional programs and that integral solutions to the linear programs derived correspond to programs that can be evaluated without any operating system support for memory management.
Abstract
We show how to efficiently obtain linear a priori bounds on the heap space consumption of first-order functional programs.The analysis takes space reuse by explicit deallocation into account and also furnishes an upper bound on the heap usage in the presence of garbage collection. It covers a wide variety of examples including, for instance, the familiar sorting algorithms for lists, including quicksort.The analysis relies on a type system with resource annotations. Linear programming (LP) is used to automatically infer derivations in this enriched type system.We also show that integral solutions to the linear programs derived correspond to programs that can be evaluated without any operating system support for memory management. The particular integer linear programs arising in this way are shown to be feasibly solvable under mild assumptions.

read more

Content maybe subject to copyright    Report

Citations
More filters
Book ChapterDOI

Amortised Memory Analysis Using the Depth of Data Structures

TL;DR: A related system for bounding the stack space requirements is described which uses the depth of data structures, by expressing potential in terms of maxima as well as sums, by adding extra structure to typing contexts to describe the form of the bounds.
Proceedings ArticleDOI

SPEED: precise and efficient static estimation of program computational complexity

TL;DR: An inter-procedural technique for computing symbolic bounds on the number of statements a procedure executes in terms of its scalar inputs and user-defined quantitative functions of input data-structures and an algorithm for automating this proof methodology is introduced.
Journal Article

Mobile Resource Guarantees for smart devices

TL;DR: The Mobile Resource Guarantees framework is presented: a system for ensuring that downloaded programs are free from run-time violations of resource bounds, and a novel programming language with resource constraints encoded in function types is used to streamline the generation of proofs of resource usage.
Journal ArticleDOI

Multivariate amortized resource analysis

TL;DR: This article presents a novel multivariate amortized resource analysis based on a type system for a simple first-order functional language with lists and trees, proves soundness, and describes automatic type inference based on linear programming.
Book ChapterDOI

Mobile resource guarantees for smart devices

TL;DR: In this paper, the authors present the Mobile Resource Guarantees framework, a system for ensuring that downloaded programs are free from run-time violations of resource bounds, in contrast to cryptographic certificates of code origin, these are independent of trust networks.
References
More filters
Proceedings ArticleDOI

Proof-carrying code

TL;DR: It is shown in this paper how proof-carrying code might be used to develop safe assembly-language extensions of ML programs and the adequacy of concrete representations for the safety policy, the safety proofs, and the proof validation is proved.
Proceedings ArticleDOI

Definitional interpreters for higher-order programming languages

TL;DR: The definition of a simple applicative programming language by means of an interpreter written in a similar language is considered, and the treatment of imperative features such as jumps and assignment is discussed.
Journal ArticleDOI

Region-based memory management

TL;DR: A region-based dynamic semantics for a skeletal programming language extracted from Standard ML is defined and the inference system which specifies where regions can be allocated and de-allocated is presented and a detailed proof that the system is sound with respect to a standard semantics is presented.
Proceedings ArticleDOI

Resource bound certification

TL;DR: This work presents a decidable type system capable of specifying and certifying bounds on resource consumption, and provides a fully automatic compiler generating certified executables from source-level programs.
Proceedings ArticleDOI

Recursion and dynamic data-structures in bounded space: towards embedded ML programming

TL;DR: A functional language with a type system such that well typed programs run within stated space-bounds, and the notion of sized types, of Hughes, Pareto and Sabry, has been added.