Journal Article10.1145/1925844.1926427
Multivariate amortized resource analysis
Jan Hoffmann,Klaus Aehlig,Martin Hofmann +2 more
- 26 Jan 2011
- Vol. 46, Iss: 1, pp 357-370
TL;DR: A novel multivariate amortized resource analysis is presented in form of a type system for a simple first-order functional language with lists and trees, prove soundness, and describe automatic type inference based on linear programming.
read more
Abstract: We study the problem of automatically analyzing the worst-case resource usage of procedures with several arguments. Existing automatic analyses based on amortization, or sized types bound the resource usage or result size of such a procedure by a sum of unary functions of the sizes of the arguments.In this paper we generalize this to arbitrary multivariate polynomial functions thus allowing bounds of the form mn which had to be grossly overestimated by m2+n2 before. Our framework even encompasses bounds like ∗i,j≤n m_i mj where the mi are the sizes of the entries of a list of length n.This allows us for the first time to derive useful resource bounds for operations on matrices that are represented as lists of lists and to considerably improve bounds on other super-linear operations on lists such as longest common subsequence and removal of duplicates from lists of lists.Furthermore, resource bounds are now closed under composition which improves accuracy of the analysis of composed programs when some or all of the components exhibit super-linear resource or size behavior.The analysis is based on a novel multivariate amortized resource analysis. We present it in form of a type system for a simple first-order functional language with lists and trees, prove soundness, and describe automatic type inference based on linear programming.We have experimentally validated the automatic analysis on a wide range of examples from functional programming with lists and trees. The obtained bounds were compared with actual resource consumption. All bounds were asymptotically tight, and the constants were close or even identical to the optimal ones.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
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.
234
Resource aware ML
Jan Hoffmann,Klaus Aehlig,Martin Hofmann +2 more
- 07 Jul 2012
TL;DR: This tool paper describes Resource Aware ML (RAML), a functional programming language that implements a novel multivariate amortized resource analysis that automatically computes polynomial resource bounds for first-order functional programs.
A simple and scalable static analysis for bound analysis and amortized complexity analysis
Moritz Sinn,Florian Zuleger,Helmut Veith +2 more
- 01 Jan 2016
TL;DR: This work presents the first scalable bound analysis that achieves amortized complexity analysis, and first computes a lexicographic ranking function that proves the termination of a VASS, and then derives a bound from this ranking function.
77
Verifying the Correctness and Amortized Complexity of a Union-Find Implementation in Separation Logic with Time Credits
TL;DR: This work implements Union-Find as an OCaml library and formally endow it with a modular specification that offers a full functional correctness guarantee as well as an amortized complexity bound.
Automated Resource Analysis with Coq Proof Objects
Quentin Carbonneaux,Jan Hoffmann,Thomas Reps,Zhong Shao +3 more
- 24 Jul 2017
TL;DR: This paper introduces a method for resource-bound inference that is compositional, produces machine-checkable certificates of the resource bounds obtained, and features a sound mechanism for user interaction if the inference fails.
References
The worst-case execution-time problem—overview of methods and survey of tools
Reinhard Wilhelm,Jakob Engblom,Andreas Ermedahl,Niklas Holsti,Stephan Thesing,David Whalley,Guillem Bernat,Christian Ferdinand,Reinhold Heckmann,Tulika Mitra,Frank Mueller,Isabelle Puaut,Peter Puschner,Jan Staschulat,Per Stenström +14 more
TL;DR: Different approaches to the determination of upper bounds on execution times are described and several commercially available tools1 and research prototypes are surveyed.
•Book
Advanced Topics in Types and Programming Languages
Benjamin C. Pierce
- 01 Dec 2004
TL;DR: Topics covered include precise type analyses, which extend simple type systems to give them a better grip on the run time behavior of systems; type systems for low-level languages; applications of types to reasoning about computer programs; type theory as a framework for the design of sophisticated module systems; and advanced techniques in ML-style type inference.
Mechanical program analysis
TL;DR: The reasons for mechanizing program analysis are presented, a system, Metric, which is able to analyze simple Lisp programs and produce closed-form expressions for their running time expressed in terms of size of input is described.
339
Resource bound certification
Karl Crary,Stephnie Weirich +1 more
- 05 Jan 2000
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.
Cost analysis of java bytecode
Elvira Albert,Puri Arenas,Samir Genaim,Germán Puebla,Damiano Zanardini +4 more
- 24 Mar 2007
TL;DR: This paper develops a generic framework for the automatic cost analysis of sequential Java bytecode and generates cost relations which define at compile-time the cost of programs as a function of their input data size.